提问人: 提问时间:5/2/2011 最后编辑:skaffman 更新时间:11/17/2023 访问量:4684
这是什么字符编码?
What character encoding is this?
问:
我正在与一个 Oracle 数据库连接,它有一些混乱的编码(根据 db 属性的 ASCII7,但实际上编码韩语字符)。
当我从 resultSet 中获取一些韩文字符串并查看字节时,事实证明它们与此文件完全对应(我通过谷歌搜索一些字节序列找到): http://211.115.85.9/files/raw3.txt
有点诡异,因为它似乎是互联网上唯一与这种特定编码有关的东西......
当使用 EditPlus3 查看该文件时,它显示 3 列。
第一列是按字母顺序排列的韩文字符列表。第二个是我在查看从 Oracle 数据库传递的 Java 字符串时发现的奇怪编码。第三个是UTF8。
我试图弄清楚中间列的编码内容。谁能给我指出正确的方向?
(我真的不想每次需要调用数据库时都从这个文件中读取......
答:
0赞
schweissdruese
5/2/2011
#1
它是 UTF-8 编码:
가 c2b0c2a1 eab080
각 c2b0c2a2 eab081
간 c2b0c2a3 eab084
갇 c2b0c2a4 eab087
...
我不知道中间一列的含义,但第三列是第一行韩文的十六进制表示。
使用十六进制编辑器监视文件,这可能会有所帮助。
祝你好运!:)
评论
0赞
5/2/2011
我。。的。。。对不起,我已经知道了。我只对第二列感兴趣。
0赞
RARE Kpop Manifesto
7/7/2023
我发现了一个韩国网站,在其网格上特别突出显示了 .当然,它只是音节的一小部分,但给出了映射如何工作的想法()(我认为有完整的映射文件)가
b0a1
EUR-KR
https://coding-factory.tistory.com/810
unicode.org
0赞
schweissdruese
5/2/2011
#2
我写了一个小脚本,解码了前两行的中间一栏蛮力。
以下四个结果是韩文,但我不确定它们是否有意义:
utf_16_be => 슰슡 슰슢
johab => 춿춰 춿춱
euc_kr => 째징 째짖
cp949 => 째징 째짖
我希望这会有所帮助。有好的一天!:)
评论
0赞
5/2/2011
:D感谢你的努力,但第一列是实际对应的韩文字符()。第二列是我试图识别的未知编码,我知道它编码了一个韩语字符。(是的,它似乎是一种 32 位编码方案。각
5赞
Joachim Sauer
5/2/2011
#3
它是 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);
这在我的系统上打印가。
我找到了这个PDF文件,它更详细地解释了问题(以及它是如何发生的)。
评论
0赞
5/3/2011
了不起。先生,你真是太棒了。
0赞
Andrei Calinescu
11/17/2023
PDF 链接已损坏。我相信这是同一PDF的存档版本:web.archive.org/web/20130909072935/http://brianhitchcock.net/...
0赞
Joachim Sauer
11/17/2023
@AndreiCalinescu:是的,就是那个,我更新了链接。
下一个:这是什么字符编码?
评论