如何将自定义编码文件转换为UTF-8(使用Java或专用工具)
我正在用Java重写的一个遗留软件使用自定义(类似于Win-1252)编码作为数据存储。对于我正在构建的新系统,我想用UTF-8替换它 因此,我需要将这些文件转换为UTF-8以提供数据库。我知道使用的字符映射,但它不是任何广为人知的。例如,“A”在位置0x0041上(如Win-1252),但在0x0042上,有一个符号在UTF-8中出现在位置0x0102上,以此类推。有没有一种简单的方法可以用Java解码和转换这些文件 我已经读过很多帖子,但它们都涉及某种行业标准编码,而不是定制编码。我希望可以创建一个自定义如何将自定义编码文件转换为UTF-8(使用Java或专用工具),java,encoding,character-encoding,Java,Encoding,Character Encoding,我正在用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 );