如何将字符串转换为Unicode代码点?示例需求及实现方法
将字符串转换为U+XXXX格式的实现方案
核心逻辑是遍历字符串的每个字符,获取其Unicode码点,格式化为U+开头的十六进制字符串(不足4位补前导0),最后用空格拼接所有结果。以下是几种主流编程语言的实现:
Python 实现
# 示例字符串(包含末尾空格) input_str = "ABC " # 遍历每个字符,格式化码点 formatted_str = ' '.join([f'U+{ord(char):04X}' for char in input_str]) # 输出结果 print(formatted_str)
输出:
U+0041 U+0042 U+0043 U+0020
ord(char)获取字符的Unicode码点:04X格式化大写十六进制,确保长度为4位,不足补0
JavaScript 实现
// 示例字符串(包含末尾空格) const inputStr = "ABC "; // 处理包含代理对的Unicode字符(如emoji),格式化码点 const formattedStr = [...inputStr].map(char => { const codePoint = char.codePointAt(0); return `U+${codePoint.toString(16).padStart(4, '0').toUpperCase()}`; }).join(' '); // 输出结果 console.log(formattedStr);
输出:
U+0041 U+0042 U+0043 U+0020
[...inputStr]正确拆分包含代理对的Unicode字符codePointAt(0)获取完整的Unicode码点(避免代理对拆分错误)padStart(4, '0')确保十六进制字符串长度至少为4位
通用说明
对于超出基础多语言平面(BMP)的字符(如😀,码点为U+1F600),上述代码会自动输出6位的十六进制格式,符合Unicode官方规范。
内容的提问来源于stack exchange,提问作者Krzysztof
相关产品推荐
相关产品推荐

