首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将自定义编码文件转换为UTF-8 (在Java中或使用专用工具)

如何将自定义编码文件转换为UTF-8 (在Java中或使用专用工具)
EN

Stack Overflow用户
提问于 2011-01-20 16:03:38
回答 1查看 1.8K关注 0票数 6

我正在用Java重写的一个遗留软件使用自定义(类似于Win-1252)编码作为数据存储。对于我正在构建的新系统,我想将其替换为UTF-8。

因此,我需要将这些文件转换为UTF-8以提供给我的数据库。我知道所使用的字符映射,但它不是任何广为人知的映射。例如:"A“位于位置0x0041 (如Win-1252),但在0x0042上有一个UTF-8符号出现在位置0x0102上,依此类推。有没有一种简单的方法可以用Java解码和转换这些文件?

我已经读过很多帖子了,但它们都涉及某种行业标准编码,而不是自定义编码。我希望可以创建一个自定义的java.nio.ByteBuffer.CharsetDecoderjava.nio.charset.Charset来将其传递给java.io.InputStreamReader,如第一个答案here中所述

欢迎任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-20 16:14:06

不需要太复杂。只需生成一个256个字符的数组

代码语言:javascript
代码运行次数:0
运行
复制
static char[] map = { ... 'A', '\u0102', ... }

然后

代码语言:javascript
代码运行次数:0
运行
复制
read each byte b in source
    int index = (0xff) & b; // to make it unsigned
    char c = map[index];
    target.write( c );
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4744722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档