我从输入文件中读取文本行,剪切后我得到了字符串:
-pokaż wszystko-
–ყველას გამოჩენა–
我必须这样写到其他文件:
-poka\017C wszystko-
\2013\10E7\10D5\10D4\10DA\10D0\10E1 \10D2\10D0\10DB\10DD\10E9\10D4\10DC\10D0\2013
我的python脚本开始于:
file_input = open('input.txt', 'r', encoding='utf-8')
file_output = open('output.txt', 'w', encoding='utf-8')
不幸的是,写入文件不是期望的。
我知道了为什么必须更改它的提示,但无法弄清楚转换:
以UTF-8保存的变音标记(“-pokażwszystko-”),仅在NLS_LANG = AMERICAN_AMERICA.AL32UTF8时,该变音符才能正常工作
如果输出文件中的转音符以转义格式保存(“ -poka \ 017C wszystko-”),则该脚本对于任何NLS_LANG设置均可正常工作
答案 0 :(得分:1)
Python 3.6解决方案...设置ASCII范围以外的字符格式:
#coding:utf8
s = ['-pokaż wszystko-','–ყველას გამოჩენა–']
def convert(s):
return ''.join(x if ord(x) < 128 else f'\\{ord(x):04X}' for x in s)
for t in s:
print(convert(t))
输出:
-poka\017C wszystko-
\2013\10E7\10D5\10D4\10DA\10D0\10E1 \10D2\10D0\10DB\10DD\10E9\10D4\10DC\10D0\2013
注意:我不知道您是否或如何在基本多语言平面(BMP,> U + FFFF)之外处理Unicode字符,但是此代码可能无法处理它们。需要有关您的转义序列要求的更多信息。