终于搞明白了困惑很久的问题,罪魁祸首还是jdk啊。天杀的。

以下内容转自网络:

测试环境:Win2K Pro日文版,SUN J2SDK 1.5.0-beta2

经过测试,发现Shift_JIS和MS932编码的全角波浪线(“~”)的编码都是 0x8160(16进制,两个字节,高位在前)。通过sun.io.ByteToCharMS932转换后得到Unicode字符'\uFF5E',而通过sun.io.ByteToCharSJIS转换后则得到Unicode字符'\u301C'。

反之,Unicode字符'\uFF5E'通过sun.io.CharToByteMS932转换后会得到MS932编码的本地字符0x8160(16进制,两个字节,高位在前),而Unicode字符'\u301C'通过 sun.io.CharToByteSJIS转换后也会得到Shift_JIS编码的本地字符0x8160(16进制,两个字节,高位在前),两者的转换结果相同。

结论:在WinNT/2K/XP上,MS932和Shift_JIS这两种本地字符集完全相同,只是分别采用JDK的sun.io.ByteToCharMS932和sun.io.ByteToCharSJIS对个别特殊的本地字符进行转换后所得到的 Unicode字符并不一样。实际上,MS932就是WinNT/2K/XP上的Shift_JIS,只是与标准版的Shift_JIS字符集相比,MS932收录了更多的字符,比如NEC和IBM对Shift_JIS的扩展(如日文中的“㊤㊥㊦㊧㊨①..⑳...”等等);然而,JDK中的 ByteToCharSJIS及CharToByteSJIS却使用了标准的Shift_JIS字符集,所以部分扩展字符在从byte转换成char或是从char转换成byte时会出现乱码,这的确是JDK让人非常迷惑的一处。

参考资料1(日文):http://www.asahi-net.or.jp/~ez3k-msym/charsets/jis2ucs.htm

java ms932_Shift_JIS, MS932 and Unicode(收藏自网络)相关推荐

  1. 《Java程序书面采访猿收藏》之 instanceof的作用是什么

    instanceof它是Java二元运算语言,它的作用是推断对象变量引用被指向的类型是一类(或接口.抽象类.父亲)示例.即,对象是否是它的一个实例离开它的类的权.返回boolean数据类型. 常见的使 ...

  2. java 中文字符和unicode编码值相互转化

    java 中文字符和unicode编码值相互转化 https://blog.csdn.net/u011366045/article/details/79235217 版权声明:本文为博主原创文章,未经 ...

  3. java 处理unicode_Java与Unicode

    Java与Unicode:Java的class文件采用utf8的编码方式,JVM运行时采用utf16.Java的字符串是unicode编码的.总之,Java采用了unicode字符集,使之易于国际化. ...

  4. 如何在Eclipse 3.3上安装jadclipse[java的反编译工具] 收藏

    如何在Eclipse 3.3上安装jadclipse[java的反编译工具] 收藏 jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高.可惜用起来不太方便.还好 找到eclips ...

  5. java堆外内存为何比java堆更适合用来进行网络IO操作

    java执行socket.write对java堆内的数组数据进行网络IO操作时,其实分两步进行: 1.把java堆的数据拷贝到C堆内存中(对Java来说就是堆外内存,只是这个内存不归java管理) 2 ...

  6. Java基础学习——第十四章 网络编程

    Java基础学习--第十四章 网络编程 一.网络编程概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信 ...

  7. Java学习记录五(多线程、网络编程、Lambda表达式和接口组成更新)

    Java学习记录五(多线程.网络编程.Lambda表达式和接口组成更新) Java 25.多线程 25.1实现多线程 25.1.1进程 25.1.2线程 25.1.3多线程的实现 25.1.4设置和获 ...

  8. ☀️苏州程序大白一文让你学会Java Servlet基础☀️《❤️记得收藏❤️》

    ☀️苏州程序大白一文让你学会Java Servlet基础☀️<❤️记得收藏❤️> 目录

  9. Java Review(三十八、网络编程)

    文章目录 网络基础 IP地址 端口 域名 网络模型 常用协议 Java 的基本网络支持 使用 InetAddress URL. URLConnection 和 URLPermission 基于TCP协 ...

最新文章

  1. 周鸿祎:quot;安全大脑quot;将成智能经济时代的网络安全中枢
  2. IT人的自我导向型学习:学习的1个理念和2个心态
  3. opencv 运动检测
  4. C++编程练习(5)----“实现简单的循环队列的顺序存储结构“
  5. mysql 一键脚本_mysql一键安装脚本
  6. Sdk Manager.exe 闪退问题的解决
  7. 网易实践|千万级在线直播弹幕方案
  8. OpenGL多维数据集的透视图渲染
  9. C++ Opengl纹理过滤和光照实例源码
  10. ci php做记录删除,CI(CodeIgniter)框架中的增删改查操作_PHP教程
  11. 让windows cmd也用上linux命令
  12. 安全员b本计算机考试,2019年安全员B证考试题库试题资料一.doc
  13. windows 驱动实现进程枚举
  14. excel下载模版(数据字典)
  15. matlab三角函数拟合程序,三角函数拟合
  16. EasyDarwin开源摄像机访问EasyCamera中海康摄像头语音对讲和云台控制转发实现
  17. 移动光猫搭建虚拟服务器,折腾光猫/路由器[MIPS架构](1):用Samba服务器搭建家庭文件共享中心...
  18. WinRAR怎么去广告
  19. 为电商而生的知识图谱,如何感应用户需求? 1
  20. tomcat自动化部署(拉取\备份、部署、更新、回滚)

热门文章

  1. 【Task02】Numpy组队学习—随机抽样
  2. 连接到另外计算机要用户名,连接局域网电脑需要用户名密码
  3. unity 创建自己的像素地图 TileMap
  4. HP惠普打印机驱动安装详解
  5. 日常pytho3练习脚本之--彩票自动选号机
  6. 一万多字的windows历史
  7. 剧白白 v3.1.1 修改版 (强大的最新影视在线平台)
  8. SpringCloud相关jar maven管理工具不能下载(Finchley.M8)
  9. 动物识别系统代码python_动物识别 python 人工智能实验
  10. [水晶报表]如何设置水晶报表(crystal reports)的字段自动换行