You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Iconv将UTF-8字符转换为十六进制NCR格式

iconv本身没有内置的NCR编码支持,你之前的命令使用逻辑有误:--unicode-subst参数仅用于替换目标编码中无法表示的字符,//TRANSLIT是音译转换标识,都无法实现直接输出全字符的NCR格式的需求。

解决方案

方案1:使用Perl单行命令(最简便)

直接运行以下命令即可完成转换,仅对非ASCII字符生成NCR,保留原ASCII字符不变:

perl -CSD -pe 's/([^\x00-\x7F])/sprintf("&#x%04X;", ord($1))/ge' your_input_file > your_output_file

参数说明:

  • -CSD:指定输入、输出、文件内容均采用UTF-8编码
  • 正则匹配所有非ASCII字符,通过sprintf生成对应的十六进制NCR格式

方案2:使用Python脚本实现

如果更熟悉Python,可以使用以下轻量脚本完成转换:

import sys

def utf8_to_ncr():
    for line in sys.stdin:
        res = []
        for c in line.rstrip('\n'):
            if ord(c) > 127:
                res.append(f'&#x{ord(c):04X};')
            else:
                res.append(c)
        print(''.join(res))

if __name__ == "__main__":
    utf8_to_ncr()

保存为utf82ncr.py后运行:

python3 utf82ncr.py < your_input_file > your_output_file

特殊场景:强制所有字符(含ASCII)转NCR

如果需要把所有字符都转换为NCR格式,调整对应逻辑即可,比如Perl命令修改为:

perl -CSD -pe 's/(.)/sprintf("&#x%04X;", ord($1))/ge' your_input_file > your_output_file

内容的提问来源于stack exchange,提问作者Samy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:33:01