`
WessonGao
  • 浏览: 28021 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[转]UTF-8到GBK转码的特殊字符问题(乱码原因)

阅读更多
Unicode字符集现在有超过10万个字符,其BMP部分也有六万多个字符;而GBK字符集只有两万以前多个字符。这样的话,从支持 unicode字符集或者unicode字符集BMP的编码方式,转化到GBK编码的时候,就会有编码落到GBK字符集以外,不能转化成GBK编码。在 java中,转换之后的字符串,这部分字符都变成了’?’。通常这些都是非常生僻的字符,倒是可以不考虑;但是有一个特殊的unicode字符,不在GBK字符集中。却频繁用于xml/html等格式的文件中。这个字符unicode序号为0xA0,utf-8编码结果为C2A0,作用是一个排版空格——普通的ascii空格在xml/html中是被忽略的。大量UTF-编码的网页使用这个字符用作占位的空格。而且似乎浏览器对它的处理方式也不同:IE8浏览器会认得这个空格,firefox3.6简单的把它替换成 。当把一个utf-8编码的网页转成gbk编码时,这个字符就变成讨厌的问号了。

处理方法,就是在字符串以GBK编码写出之前,把这个字符替换掉:

str = str.replace('/u00A0', ' ');

彻底而保险的方法是过滤所有GBK不能表示的字符:

str = str.replaceAll("[^/u4E00-/u9FA5/u3000-/u303F/uFF00-/uFFEF/u0000-/u007F/u201c-/u201d]", " ");
分享到:
评论

相关推荐

    PB的utf-8转换

    PB的utf-8转换,包括加码解码等等 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

    java文件编码GBK转utf8完美解决方案

    idea、Eclipse等项目导入.java文件中文乱码完美解决方案:文件夹下所有GBK编码的.java一键转为utf-8,操作方式:将GBK2UTF8.jar文件考到需要转码项目目录,在当前位置运行控制台,输入命令java -jar GBK2UTF8.jar,...

    批量将Java源代码文件的编码从GBK转为UTF-8

    老项目采用GBK编码格式,而新项目采用的UTF-8编码格式,如果直接把Java源代码复制到Eclipse中所有的中文信息会出现乱码。所以写了个小的方法类,将java文件的编码格式从GBK转UTF-8

    批量转UTF-8/UTF-8-sig/GB18030等批量转CRLF/LF/CR换行符

    所以,你看到的绝大多数转字符集的程序,都是GBK->UTF-8,GBK->BIG5,这种,必须要你提前知道你的文本是什么编码,否则就会乱码。而且,转过一次的文本,再转一次,也会乱码。 我在对比了诸多字符集探测库之后,...

    小程序gb2312编码转utf-8,arryBuffer转字符串,含汉字字符串一直乱码

    问题 小程序接收蓝牙设备发送的信息,但是蓝牙设备发送的是gb2312...// 导入gbk转utf-8对照表 import Decoder from "../../utils/Decoder.js" 参考地址:https://blog.csdn.net/v_loading/article/details/118154963

    utf8 转为 gbk 编码

    可以帮助你把中文转换成UTF-8编码形式,UTF-8编码与中文互转,同时也支持把UTF-8编码过的字符还原成中文,将字符串转换为UTF-8形式,解决在网络传输过程中出现的字符乱码,同时可跨平台使用。

    文件编码转换 utf8转gbk gbk转utf8

    在eclipse编程过程中,如果遇到乱码问题,可以讲此工程放置到workspace目录下进行转码,但是使用者需对代码中的文件路径进行相应的修改。 使用时,需将要转码的文件放到一个文件夹中,在workspace中新建一个system...

    java读写excel包括utf8转码为可识别汉字gbk

    java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel

    JS字符集转码函数

    万能转码函数,解决中文字符转码问题、GBK转utf8问题,utf8转gbk等等各种转码、乱码问题。

    C# 将中文乱码转换成中文

    C# 将中文乱码转换成中文C# 将中文乱码转换成中文

    PHP自动识别字符集并完成转码详解

    因为自己使用字符编码一般的是utf-8编码,但如果对方的博客使用gb2312编码的话,POST过来就会出现乱码(除非对方POST前先转换编码)。在不能保证对方是否一定使用utf-8编码的情况下,自己做一个编码的检查和转换是很...

    CDC-MQ数据库生僻字转码ž;

    CDC增量+全量数据到MQ,出现生僻字乱码;数据库字符集ISO-8859-1,转译后字符集GBK(如有疑问,咨询)

    分割GBK中文遭遇乱码的解决方法

    类似如下的字符串(GBK), explode不能得到正确结果: 1.$result = explode(“|”, “滕华弢|海青”); 究其原因, 对于”弢”字(读tao,不认识没关系,我也不认识), 因为他的GBK...1.第一, 可以采用转码到utf8, 然后explode

    JSP/Servlet 中的汉字编码问题

    -80,GBK,GB18030-2000 汉字字符集及 Encoding 中文转码时’?’、乱码的由来 JSP/Servlet 汉字编码问题及在 WAS 中的解决办法 结束语 参考文章 1. 问题的起源每个国家(或区域)都规定了计算机信息交换用的字符编码...

    论文研究-开放平台与主机平台间的中文字符转换方法研究 .pdf

    开放平台与主机平台间的中文字符转换方法研究,侯莹,牛纪桢,在实现开放平台和IBM大型主机平台的连接时,为了解决中文字符出现乱码的现象,就要完成GBK编码与EBCDIC编码的转码工作。本文首先对两

    textpro 6.5及使用教程

    GBK码繁简体转换与BIG5+/GBK转换功能分开执行可以适应一些特殊的需求,也为今后UNICODE的发展趋势做好了准备。 简体转繁体中解决了大部分一对多的难题,但对复杂情形和古文还不适用,只能起到参考作用。详见“汉字...

    官方最新发布的Textpro6.5及其教程

    GBK码繁简体转换与BIG5+/GBK转换功能分开执行可以适应一些特殊的需求,也为今后UNICODE的发展趋势做好了准备。 简体转繁体中解决了大部分一对多的难题,但对复杂情形和古文还不适用,只能起到参考作用。详见“汉字...

    gbsetup.exe

    由于VFP数据库管理开发平台不支持unicode统一码,简体和繁体版VFP程序在不同华语地区呈现无法识别的乱码。当港台用户安装简体软件或大陆用户安装繁体软件时,即使尝试使用微软Applocle,设置区域,升级语言包,也...

Global site tag (gtag.js) - Google Analytics