簡體   English   中英

Python:在文件中寫入unicode值

[英]Python: write unicode value in file

我正在編寫一個腳本,該腳本以多種語言編寫文件,其中不包含ascii文本,因此我以unicode編寫內容。

這是數據的打印:

[['LATEST', u'\u0928\u0935\u0940\u0928\u0924\u092e'], ['RECOMMENDED', u'\u0938\u093f\u092b\u093e\u0930\u093f\u0936 \u0915\u093f\u092f\u093e \u0917\u092f\u093e']]

這是我用來編寫的代碼:

f = codecs.open(file,encoding='utf-8', mode='w')
f.write(el)

必須在文本編輯器中將文本顯示在北印度語中才能正常工作,但是由於服務器需要使用文件格式,因此我需要直接寫出

\\ u0928 \\ u0935 \\ u0940 \\ u0928 \\ u0924 \\ u092e

我目前正在跑步

os.system("native2ascii -encoding utf-8 ./output/nls_hi.properties ./output/nls_hi.properties")

但這會花費太多時間,我不禁認為必須有一種方法可以直接正確地編寫它。

想法?

謝謝

傑森

您可能想要使用類似my_string.encode('raw_unicode_escape')

好吧, f = codecs.open('bla.txt', encoding='raw_unicode_escape', mode='w')

然后文件將包含轉義的字符串: \न\व\ी\न\त\म

服務器需要什么文件格式? 是否需要字節順序標記 (BOM)? 無論答案如何,最簡單的方法就是直接使用str.encode

data = u'text with Unicode chars etc.'
with open(filename, 'w') as f:
    # For UTF-8, no BOM:
    f.write(data.encode('utf-8')

對於UTF-16,請使用data.encode('utf-16') ,該材料將隨BOM一起提供。 如果您不想使用BOM表,請明確使用utf-16le (小端)或utf-16be (大端)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM