我正在用Java重写的旧版软件将自定义(类似于Win-1252)编码用作数据存储。对于我要构建的新系统,我想用UTF-8替换它。
因此,我需要将这些文件转换为UTF-8来填充数据库。我知道所使用的字符映射表,但并不是众所周知的。例如。“ A”位于位置0x0041(与Win-1252中相同),但是在0x0042上有一个符号,该符号在UTF-8中出现在位置0x0102上,依此类推。有没有一种简单的方法可以用Java解码和转换这些文件?
我已经阅读了很多帖子,但是它们都涉及某种行业标准编码,而不是自定义编码。我期望有可能创建一个自定义java.nio.ByteBuffer.CharsetDecoder
或java.nio.charset.Charset
将其传递给此处java.io.InputStreamReader
第一个“答案”中所述?
任何建议欢迎。
无需复杂。只做一个256个字符的数组
static char[] map = { ... 'A', '\u0102', ... }
然后
read each byte b in source
int index = (0xff) & b; // to make it unsigned
char c = map[index];
target.write( c );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句