如何将具有Unicode编码的字符串转换为字母字符串
我有一个带转义Unicode字符的字符串\uXXXX
,我想将其转换为常规Unicode字母。例如:
"\u0048\u0065\u006C\u006C\u006F World"
应该成为
"Hello World"
我知道当我打印第一个字符串时它已经显示了Hello world
。我的问题是我从文件中读取文件名,然后搜索它们。文件中的文件名使用Unicode编码进行转义,当我搜索文件时,我找不到它们,因为它搜索\uXXXX
名称中带有名字的文件。
回答:
从技术上讲:
String myString = "\u0048\u0065\u006C\u006C\u006F World";
自动将其转换为"Hello World"
,因此我假设你正在从某个文件中读取字符串。为了将其转换为“ Hello”,你必须将文本解析为单独的unicode
数字(采用\uXXXX
和只需获取XXXX
),然后进行操作Integer.ParseInt(XXXX, 16)
以获取十六进制值,然后进行大小写转换char以获取实际字符。
编辑:一些代码可以完成此操作:
String str = myString.split(" ")[0];str = str.replace("\\","");
String[] arr = str.split("u");
String text = "";
for(int i = 1; i < arr.length; i++){
int hexVal = Integer.parseInt(arr[i], 16);
text += (char)hexVal;
}
// Text will now have Hello
以上是 如何将具有Unicode编码的字符串转换为字母字符串 的全部内容, 来源链接: utcz.com/qa/432577.html