Python如何将Unicode字符串转换为大写\uNNNN格式的转义字符串
实现方法
你可以手动遍历字符串的每个字符,对非可打印ASCII范围的字符统一格式化为4位大写的\uNNNN转义格式,完全符合你的存储和比对要求,示例代码如下:
def format_to_u_escape(input_str): escaped = [] for char in input_str: code_point = ord(char) # 可打印ASCII字符(空格到波浪号范围)直接保留原字符 if 32 <= code_point <= 126: escaped.append(char) # 其余字符统一转为\u+4位大写十六进制格式 else: escaped.append(f"\\u{code_point:04X}") return ''.join(escaped) # 测试你的输入 raw_str = '¡ ATENCIÓN! ◄' result = format_to_u_escape(raw_str) print(result) # 输出结果:\u00A1 ATENCI\u00D3N! \u25C4
原方法失效原因
你之前使用unicode_escape编码时,Python对码值小于256的字符会输出\xXX的短转义格式,且默认十六进制为小写,无法匹配你要求的统一\uNNNN大写格式,手动逐字符处理可控性更高,可以完全对齐你的格式要求。
另外注意不要用str作为变量名,会覆盖Python内置的字符串类型,后续容易触发不可预知的错误。
内容的提问来源于stack exchange,提问作者user16837493
相关产品推荐
相关产品推荐

