如何将Unicode编码转换为常规文本?REST API返回编码转换方法
如何将REST API返回的Unicode转义文本转换为常规文本?
你拿到的是Unicode转义序列,其中\u开头的四位十六进制数对应西里尔字母(俄语)的Unicode编码,以下是几种主流编程语言的转换方法:
Python
Python 3会自动解析字符串中的Unicode转义序列,直接输出即可;如果是从API获取的带双反斜杠的原始转义字符串,可通过unicode-escape解码:
# 直接解析转义序列 escaped_text = "\u0422\u044e\u043b\u044e\u043b\u044e\u043c-\u0422\u044e\u043b\u044e\u043b\u044e\u043c" print(escaped_text) # 输出:Тюлюлюм-Тюлюлюм # 处理带双反斜杠的原始字符串 raw_escaped_text = "\\u0422\\u044e\\u043b\\u044e\\u043b\\u044e\\u043c-\\u0422\\u044e\\u043b\\u044e\\u043b\\u044e\\u043c" normal_text = raw_escaped_text.encode('utf-8').decode('unicode-escape') print(normal_text) # 输出:Тюлюлюм-Тюлюлюм
JavaScript
利用JSON.parse自动解析Unicode转义序列:
// 处理带双反斜杠的原始转义字符串 const escapedText = "\\u0422\\u044e\\u043b\\u044e\\u043b\\u044e\\u043c-\\u0422\\u044e\\u043b\\u044e\\u043b\\u044e\\u043c"; const normalText = JSON.parse(`"${escapedText}"`); console.log(normalText); // 输出:Тюлюлюм-Тюлюлюм
Java
借助Apache Commons Text库的StringEscapeUtils工具类:
import org.apache.commons.text.StringEscapeUtils; public class UnicodeConverter { public static void main(String[] args) { String escapedText = "\\u0422\\u044e\\u043b\\u044e\\u043b\\u044e\\u043c-\\u0422\\u044e\\u043b\\u044e\\u043b\\u044e\\u043c"; String normalText = StringEscapeUtils.unescapeJava(escapedText); System.out.println(normalText); // 输出:Тюлюлюм-Тюлюлюм } }
原理说明
这类\uXXXX格式的转义是Unicode字符的十六进制表示,只要让对应编程语言的字符串处理函数识别并解析该转义规则,就能还原为可读的常规文本。转换后的文本是俄语:Тюлюлюм-Тюлюлюм。
内容的提问来源于stack exchange,提问作者duman
相关产品推荐
相关产品推荐

