我只是在从文件中读取一些数据作为字节流的过程中,我刚刚遇到一些unicode字符串,我不知道如何处理。Java unicode字节解析
每个字符都使用两个字节,仅在第一个似乎到包含实际数据,因此,例如字符串“信任”被存储在文件中:
0x74 0x00(t) 0x72 0x00(r) ...and so on
一般情况下我只用一个正则表达式用零代替零,因此删除空白。但是,文件内的单词之间的空格是通过使用0x00 0x00
来实现的,所以试图做一个简单的String'replaceAll'就会让它变得有点麻烦。
我已经尝试过使用字符串编码集,比如'ISO-8859-1'和'UTF-8/16',但每次我都要用空格结束。
我没有创建一个简单的正则表达式来去除双零个十六进制值,这就是:
new String(bytes).replaceAll("[\\00]{2,},"");
但这显然只适用于双零,我真的很想来取代单一的零一无所有,以及具有实际的ASCII/Unicode空格字符的双零。
我可以发誓,其中一个Java字符串格式设置处理这种事情,但我可能是错的。那么我是否应该创建一个正则表达式来去除零,或者Java是否提供了实现它的机制?
谢谢
啊,是的,就是这样,我无法找到这个。这回答了我的问题并修复了它。非常感谢您的快速回复,我会尽快点击接受。感谢Esailija! – Tony