我正在与Oracle DB连接,后者有一些混乱的编码(根据db属性的ASCII7,但实际上编码韩文字符).
当我从resultSet中获取一些朝鲜语字符串,并查看字节时,事实证明它们与此文件完全对应(我通过谷歌搜索一些字节序列找到):http://211.115.85.9/files/ raw3.txt
有点怪异,因为它似乎是互联网上唯一有关于这个特定编码的东西......
使用EditPlus3查看时,该文件显示3列.
第一列是韩语字符的字母顺序列表.第二个是我从查看从Oracle DB传递的Java字符串中发现的奇怪编码.第三个是UTF8.
我想弄清楚中间列是什么编码的.有人能指出我正确的方向吗?
(我真的不想每次需要调用数据库时都要从这个文件中读取...)
它是EUC-KR(或类似的)编码数据,被解释为另一个1字节编码(ISO-8859-1或类似)并使用UTF-8编码.
换句话说:它是不良编码的数据,但可能是可以挽回的:
byte[] bytes = new byte[] { (byte) 0xc2, (byte) 0xb0, (byte) 0xc2, (byte) 0xa1 };
String str = new String(bytes, "UTF-8");
bytes = str.getBytes("ISO-8859-1");
str = new String(bytes, "EUC-KR");
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)
这会在我的系统上打印가.
我发现这个PDF文件更详细地解释了问题(及其发生的方式).
| 归档时间: |
|
| 查看次数: |
3137 次 |
| 最近记录: |