我需要将文件从EBCDIC(IBM 937)转换为UTF-8。任何想法如何使用CharsetICU(icu4j API)进行字符集转换?字符集转换的CharsetICU java示例
0
A
回答
1
无需使用外部库来做到这一点的转换(略异常处理):
Reader r = new InputStreamReader(new FileInputStream(...), "IBM937");
Writer w = new OutputStreamWriter(new FileOuputStream(...), "UTF-8");
char[] buf = new char[65536];
int size = 0;
while ((size = r.read(buf)) != -1)
w.write(buf, 0, size);
r.close();
w.close();
1
认为你应该能够使用CharsetICU。 forNameICU(“ibm-937”),那么你可以将得到的字符集传递给读写器。
0
这不是一个字符集转换,这是一个使用ICU库的“音译”例子。
版本:ICU4J 53.1
套餐:com.ibm.icu.text.Transliterator
Transliterator.getInstance("Latin-ASCII").transliterate("Your text");
其中: “拉丁-ASCII” 是 “字符集合” 你需要(注意:此不是一种编码)。你可以使用Transliterator.getAvailableIDs()来检查可用的ID;
对于 “拉丁-ASCII”:
Given "123" returns "123"
Given "abc" returns "abc"
Given "Š Œ ñ" returns "S OE n"
相关问题
- 1. 字符集转换Java
- 2. 字符集转换
- 3. java控制台字符集转换
- 4. Java字符转换
- 5. Java集合将字符串转换为字符列表
- 6. PHP字符集转换
- 7. 转换的java字符串转换成JavaScript字符串
- 8. Java Postfix字符串转换
- 9. 转换字符串在Java
- 10. Java - 将字符串转换为字符[]
- 11. 参数struts2中的字符集转换
- 12. Java:将一个集合转换为一个字符串表示的数组
- 13. ASCII到XML的字符集转换
- 14. C#转换字节[]到字符串字符集
- 15. AS3:转换为GBK字符集
- 16. 用于字符串转换的Hadoop MapReduce示例
- 17. Java - JNI - 将UCS-2字符转换为jchar(即Java的字符)
- 18. 将字符集名称转换为NSStringEncoding
- 19. 将字符串转换为数据集
- 20. Python字符串切片示例集
- 21. Java的转换集合
- 22. Java字节[]到/从字符串转换
- 23. Java - 将字节[]转换为字符串
- 24. 将BLOB字段的字符集转换为MySQL中的UTF-8
- 25. 的Java:转换字符串到日期
- 26. Java中最快的字符串转换
- 27. 转换字符串到日期 - Java的
- 28. 字符串转换为可变的Java
- 29. CLOB到字符串转换+的java 1.8
- 30. 的Java字符/ INT转换混乱
试过这个了。由于某种原因,它不会执行转换。 输出应该是这样的: 僔働咗卆匜叀卼卋卆卐 而不是它的表现是这样的: VPそあじょほいあお – SNL 2011-03-14 14:02:15
@SNL:它看起来非常奇怪。根据http://www.fileformat.info/info/unicode/char/5350/charset_support.htm,U +5350卐根本不能在IBM 937中表示。您确定您的输入是IBM 937吗?你能展示它的十六进制表示吗? – axtavt 2011-03-14 16:48:36
这是正确的,我也仔细检查发射机。我们在ebcdic中有一个文件,而在utf-8中有另一个版本。 你碰巧知道各种编码之间的十六进制值是否保持相同? – SNL 2011-03-14 17:20:52