当前位置: 首页 > 面试题库 >

如何将具有Unicode编码的字符串转换为字母字符串

微生俊名
2023-03-14
问题内容

我有一个带转义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字符的字符串,我想将它转换为常规Unicode字母。例如: 应成为 我知道,当我打印第一个字符串时,它已经显示。我的问题是我从一个文件中读取文件名,然后我搜索它们。文件中的文件名是用Unicode编码转义的,当我搜索这些文件时,我找不到它们,因为它搜索的文件名中有。

  • 所以我是计算机科学的新手,我们被要求做的一件事是尝试创建一个程序,首先将用户输入的一个单词转换成一个数字串,a=1,b=2,z=26等等,还有一些其他的事情,因为它们是扩展,我现在不想讨论。诚然,她说她不介意我们完成它,因为这是我们今天的第一节java课程。 有鉴于此,有人能给我一些关于如何做到这一点的建议吗?我不想让一段完整的代码完全做到这一点,因为我需要学习,因此非常感谢指导之手。到目前为止,

  • 问题内容: 我需要将unicode字符串转换为具有以unicode编码的非ascii字符的字符串。例如,字符串“汉字Max”应显示为“ \ u6F22 \ u5B57 Max”。 我尝试过的 的不同组合 新的String(sourceString.getBytes(encoding1),encoding2) Apache StringEscapeUtils也会转义ascii字符,例如双引号 Str

  • 问题内容: 当我尝试使用“ unicode(head.contents [3])”获取标签的内容时,我得到类似于以下的输出:“ Christensen Sk \ xf6ld”。我希望转义序列作为字符串返回。如何在python中做? 问题答案: 假设Python将名称视为普通字符串,则首先必须将其解码为unicode: 实现此目的的另一种方法: 注意字符串前面的“ u”,表示它是未编码的。如果进行打

  • 问题内容: 在下面查看我的代码。我有一个包含Unicode字符代码的JSON字符串。我将其转换为Java对象,然后将其转换回JSON字符串。但是,您可以看到输入和输出JSON字符串不匹配。是否可以使用Gson将我的对象转换为原始JSON字符串?我想和一样。 问题答案: 不幸的是,Gson似乎不支持它。所有JSON输入/输出分别集中在Gson(从2.8.0开始)和。可以使用其私有方法读取Unicod

  • 我需要读入带有unicode转义的标准ascii样式字符串,并将其转换为包含utf8编码等价物的std::字符串。因此,例如“\u03a0”(包含6个字符的std::字符串)应转换为包含两个字符的std::字符串,分别为0xCE和0xA0,以原始二进制格式。 如果有一个简单的答案使用icu或boost我会很高兴,但我还没有找到一个。 (这类似于将Unicode字符串转换为转义ASCII字符串,但注