文本中的问号字符显示,这是为什么?文本中的问号字符显示,这是为什么?(Question mark c

2019-05-12 04:55发布

我有一个自动备份我的直播现场,这两个文件和数据库备份服务器。

在直播现场,文本看起来很好,但是当你看到它的镜像版本,它会显示“?” 内一些文字。 该文本存储的消息数据库表中。

下面是它是镜像服务器上的活动服务器上的它和屏幕截图。

可以在备份到镜像服务器的过程中会发生什么?

Answer 1:

下面的文章将是有益的

http://dev.mysql.com/doc/refman/5.0/en/charset-syntax.html

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

当您连接到数据库发出以下命令:

SET NAMES 'utf-8';

确保你的网页也使用UTF-8编码:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

PHP还提供了几种功能,这将是非常有用的转换:

http://us3.php.net/manual/en/function.iconv.php

http://us.php.net/mb_convert_encoding



Answer 2:

编辑“镜像”服务器(有问题的服务器)上的Apache配置文件,并注释掉以下行:

AddDefaultCharset UTF-8

然后重新启动Apache:

service httpd restart

的问题是,“AddDefaultCharset UTF-8”线覆盖在HTML文件中指定的内容类型; 例如:

<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

最常见的症状是127以上的显示为黑色菱形其上具有问号该字符码(在Chrome,Safari或Firefox)或作为小盒子(在IE和Opera)。 由Microsoft Word生成的HTML文件通常具有许多这样的字符,最常见的一种是字符代码160 = 0XA0,其等同于“&NBSP;” 在Windows-1252编码,并经常发现span标签之间,就像这样:

<span style="mso-spacerun: yes">ááá </span>


Answer 3:

我来到这里寻找一个解决方案为JavaScript显示在浏览器虽然不是直接与数据库相关的...

在我来说,我复制并粘贴一些文字,我发现在互联网上进入一个JavaScript文件,并使用Windows记事本保存它。

当使用该JavaScript文件输出字符串有问号的页面(如你问题所示的那些),而不是特殊字符,如重音字母,等等。

我打开使用文件Notepad++ 。 打开该文件后,右键我看到的字符编码设置为ANSI ,你可以在下面的截图中看到(在页脚鼠标光标):

为了解决该问题,请单击Encoding菜单Notepad++ ,并选择Encode in UTF-8 。 你应该是好去。 :)



Answer 4:

您的浏览器没有正确interpretted网页的编码(可能是因为您是被迫特定设置,或在页面设置不正确),因此无法显示某些字符。



Answer 5:

这将是是与字符编码。

你确定镜像网站有关于字符编码作为主服务器相同的特性?

这取决于你有什么样的服务器,这可能是服务器进程本身的属性,或者它可能是一个环境变量。

例如,如果这是UNIX环境中,也许尝试比较LANG或LC_ALL?

另请参见这里



Answer 6:

检查字符集通过您的镜像服务器被发出。 似乎有来自于主服务器的区别 - 直播网站似乎在输出Unicode的,那里的镜子是没有的。 此外,它通常是擦洗你的来电内容Unicode字符,并与他们相应的HTML实体取代他们一个好主意。

您的具体问题关于“智能引号”,“长破折号”和“短划线”。 我知道你可以更换时间与破折号&mdash; 和正破折号与&ndash; (应在数据库的输入端进行); 我不知道正确的替换为弯引号会是什么。 (我通常只是更换所有卷曲的单引号用“,并以”一切卷曲双引号...印刷术爱好者可以随意拍我的视线。)

我要指出,一些浏览器比其他人有这个问题更多的宽容 - Internet Explorer的Windows上趋于自动神奇地检测并“修复”这一点; Firefox和其他大多数浏览器中显示问号。



Answer 7:

我平时骂MS Word,然后运行以下WScript的。

//与路径替换到需要清理文件
PATH = “的test.html”

VAR去= WScript.CreateObject( “Scripting.FileSystemObject的”);
VAR含量= go.GetFile(PATH).OpenAsTextStream()ReadAll();
VAR OUT = go.CreateTextFile( “干净 - ” + PATH,TRUE);

//符号
含量= content.replace(/“/ G '“');
含量= content.replace(/” / G '“');
含量= content.replace(/ '/ G“,'”);
含量= content.replace(/ - /克, “ - ”);
含量= content.replace(/©/ g的, “&拷贝;”);
含量= content.replace(/®/ g时, “&章;”);
含量= content.replace(/°/克, “&度;”);
含量= content.replace(/¶/ g时, “<P>”);
含量= content.replace(/¿/ g的, “&iquest;”);
含量= content.replace(/¡/克, '&iexcl;');
含量= content.replace(/¢/克, '&百分之;');
含量= content.replace(/£/克, '&磅;');
含量= content.replace(/¥/克, '&日元;');

out.Write(内容);



Answer 8:

Unicode或其它字符集落过?

我也有类似的“怪”字出现在我曾经常文本时从电子邮件或一些其他文件格式(如Word)转化成文本编辑器中复制的工作场所。 编辑器可以显示非ASCII字符,但浏览器不能。 对于网站,我建议查找的字符的HTML实体代码和插入的是,而不是...或改用更标准的。



文章来源: Question mark characters displaying within text, why is this?