深圳网站建设效果,wordpress后台登陆慢,德清网站设计,大连工业大学专升本网页UTF8转换GBK后出现问号?的原因 网页编码转换是进行网页解析和处理的第一步。
互联网上越来越多的网页采用UTF-8编码#xff0c;UTF-8用1到6个字节编码UNICODE字符#xff0c;收录了超过10万个字符#xff0c;BMP部分也有六万多个字符 而在进行编码转换时?的原因 网页编码转换是进行网页解析和处理的第一步。
互联网上越来越多的网页采用UTF-8编码UTF-8用1到6个字节编码UNICODE字符收录了超过10万个字符BMP部分也有六万多个字符 而在进行编码转换时我们往往需要转换为GBK编码进行后续处理很多网页在转换后会发现出现大量连续的问号:????????
这些恶心的问号是在编码转换阶段引入的原因是 GBK字符集只收录了两万多个字符比UTF-8的字符数量少得多。
转化到GBK编码的时候就会有编码落到GBK字符集以外不能转化成GBK编码。这部分字符在转换之后的字符串中都变成了’?’ UTF-8采用变长字节 (1 ASCII, 2 希腊字母和排版字符, 3 汉字等多字节东亚语言, 4 平面符号和特殊符号等)
其中双字节字符中有一些没有在GBK字符集中通常来说UTF-8无法识别的字符都是非常生僻的字符几乎难以遇到可不用考虑但有一个字符非常特殊C2A0 C2A0是UTF8里的排版用空格区别于ASI 20的空格这个特殊的字符unicode序号为0xA0不在GBK字符集中。却频繁用于xml/html等格式的文件中。大量UTF-编码的网页使用这个字符用作占位的空格。而且不同浏览器对它的处理方式不同IE浏览器识别出该符号并以空格显示firefox则替换为xml转义字符 nbsp; 当网页中用C2A0进行文字排版时我们对网页进行编码转换为GBK时就会出现很多问号 一个简便的方案为在网页转码前进行过滤
if(code_type UTF8)
{ str str.replace(C2A0, );
}