作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我用 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
如第一个答案 here 中所述?
欢迎提出任何建议。
最佳答案
不必太复杂。只需制作一个 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 );
关于java - 如何将自定义编码文件转换为 UTF-8(在 Java 中或使用专用工具),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744722/
我是一名优秀的程序员,十分优秀!