Unicode字符转换成UTF-8的操作方法

来源:爱站网时间:2022-05-23编辑:网友分享
今天给大家分享关于Unicode字符转换成UTF-8的操作方法,相信很多朋友对这方面都比较感兴趣吧!下面的时间就让爱站技术频道网站小编给大家说说看此内容的相关知识点吧!

问题描述


我的问题可能已经在StackoverFlow上得到了回答,但是我找不到。我的问题很简单:我通过API请求数据,并且返回的数据具有Unicode字符,例如:

"SpecialOffer":[{"title":"Offre Vente Priv\u00e9e 1 jour 2019 2020"}]

我需要将“ \ u00e9e”转换为“é”。我无法创建“ replaceAll”,因为我无法事先知道所有字符。

我尝试这个:

byte[] utf8 = reponse.getBytes("UTF-8")
String string = new String(utf8, "UTF-8");

但是该字符串仍然具有“ \ u00e9e”

也是这个:

byte[] utf8 = reponse.getBytes(StandardCharsets.UTF_8);
String string = new String(utf8, StandardCharsets.UTF_8);

也尝试过这个:

    string = string.replace("\\\\", "\\");
    byte[] utf8Bytes = null;
    String convertedString = null;
    utf8Bytes = string.getBytes("UTF8") -- Or StandardCharsets.UTF_8 OR UTF-8 OR UTF_8;
    convertedString = new String(utf8Bytes, "UTF8") -- Or StandardCharsets.UTF_8 OR UTF-8 OR UTF_8;;
    System.out.println(convertedString); 
    return convertedString;

但是它也不起作用。

我测试了其他方法,但我认为我删除了所有类似的方法,但均无法正常工作,因此无法在此处向您展示。

我确信有一个非常简单的方法,但是我不应该在互联网上搜索正确的词汇。你能帮我吗?

祝您有个美好的一天,并在此先感谢您。

思路一:


您的输入看起来像是JSON摘录。如果API返回了一个JSON字符串,则只需使用JSON模块对其进行解析:

t = '{"SpecialOffer":[{"title":"Offre Vente Priv\u00e9e 1 jour 2019 2020"}]}'
print(json.loads(t))

给予:

{'SpecialOffer': [{'title': 'Offre Vente Privée 1 jour 2019 2020'}]}

注意:我必须添加大括号以使字符串成为有效的JSON ...

思路二:


String.getBytes方法需要有效的字符集[1]

来自javadoc [2]的有效情况是>>

因此您需要在getBytes方法中使用UTF-8。

  • US-ASCII
  • ISO-8859-1
  • UTF-8
  • UTF-16BE
  • UTF-16LE
  • UTF-16

[1]https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#getBytes-java.nio.charset.Charset-[2] https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html

思路三:


您可以使用小型json

Unicode字符转换成UTF-8的操作方法小编都一一给大家分享出来了,希望朋友们都能看明白。想要了解不同类型的技术文章,关注爱站技术频道网站就可以了。

上一篇:freemarker怎么访问json值

下一篇:带标签中的pdf标签页码怎么获取

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载