php图片写入带问号_关于编码:PHP输出显示带有问号的黑色小菱形

我正在写一个从数据库源中提取的php程序。 某些varchar的引号显示为带有问号的黑色菱形(?,替换字符,我假设来自Microsoft Word文本)。

如何使用php去除这些字符?

不要剥去它们,不要浪费时间。 另请参见stackoverflow.com/questions/38363566/中的"黑钻石"

如果看到该字符(?U + FFFD" REPLACEMENT CHARACTER"),则通常意味着文本本身以某种形式的单字节编码进行编码,但以一种unicode编码(UTF8或UTF16)进行解释。

如果相反,它通常会看起来像这样:?¤。

原始编码可能是ISO-8859-1,也称为Latin-1。您可以在无需更改脚本的情况下进行检查:浏览器为您提供了以不同编码重新解释页面的选项-在Firefox中,使用"查看"->"字符编码"。

为了使浏览器使用正确的编码,请添加一个HTTP标头,如下所示:

header("Content-Type: text/html; charset=ISO-8859-1");

或将编码放入meta标签中:

或者,您可以尝试以另一种编码(最好是UTF-8)从数据库中读取或使用iconv()转换文本。

到目前为止,这是最接近的解决方案。但是,现在我有了一个meta:和Im使用iconv从iso-8859-1转换为utf-8,字符现在显示为带有0096和0092的尊重其他特殊想法(或-)的方框?

是的,我还有一个想法:做一些功课...您可能使用了错误的源编码。 0x92和0x96在Windows-1252中是"弯曲的单引号"和"破折号"。那是正确的吗?您是否尝试过浏览器技巧?

使用PDF2Text类时,PHP标头为我解决了一些问题。

header("Content-Type: textplain; charset=ISO-8859-1");不应该是header("Content-Type: texthtml; charset=ISO-8859-1");吗?

@ j08691:好吧,这取决于现在的内容类型,不是吗?

工作很棒!!!

非常有帮助,如果您有一个PHP脚本可以读取保存为Windows CSV格式的CSV文件,这实际上也可以工作。谢谢!

这是一个字符集问题。这样,它在许多不同的级别上都可能出错,但是很可能数据库中的字符串是utf-8编码的,并且将它们表示为iso-8859-1。或相反。

解决此问题的正确方法是使字符集整齐。由于使用的是PHP,因此最简单的策略是在整个应用程序中使用iso-8859-1。为此,您必须确保:

所有PHP源文件都保存为iso-8859-1(不要与cp-1252混淆)。

您的网络服务器配置为使用charset=iso-8859-1提供文件

或者,您可以使用header从PHP文档中覆盖Web服务器设置。

此外࿰

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值