我有一個包含大量文本的大表單。例如,它可能包含帶引號的單詞,如"Программа"
。當我將它提交給服務器並嘗試將提交的內容寫入文件時,出現錯誤。如果我用拉丁字母替換所有西裏爾字母,那麼一切正常。問題顯然在服務器端。我想,如果我新的如何處理像"Текст на кириллице"
這樣的字符串,我可以解決這個問題。如何在Python/Django中將西裏爾字母寫入文件
回答
當您寫入文件unicode字符串時,必須先對其進行編碼。
讓我們嘗試以下操作:
# -*- coding: utf-8 -*-
text = u"Текст на кириллице"
with open('outfile.txt', 'w') as fw:
fw.write(text)
該代碼將引發異常
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
所以,僅僅編碼的文本。其中最流行的編碼爲「UTF8」:
# -*- coding: utf-8 -*-
text = u"Текст на кириллице"
with open('outfile.txt', 'w') as fw:
fw.write(text.encode('utf8'))
你必須記住的編碼,這是用來編碼的文本,以便在將來讀它。 從文件中讀取的文本,用書面方式中使用相同的編碼解碼它:
with open('outfile.txt') as f:
text = f.read()
print text.decode('utf8')
如果我將文本作爲變量傳遞,我應該怎麼做?我的意思是,這個「text = u變量」是正確的嗎?我不知道正確的語法 – Jacobian 2014-11-02 14:11:50
在我的例子'text' - 是一個變量,'u「Текстнакириллице」'是一個變量值 – stalk 2014-11-02 14:13:03
我的意思是,我想在右側有一個變量。想象一下,我有一個變量,它包含這個文本'Текстнакириллице'。我應該如何將它轉換爲utf?只是你變了嗎?或者variable.encode(utf8)? – Jacobian 2014-11-02 14:16:56
- 1. 西裏爾字母
- 2. 將西里爾文字符寫入xml文件
- 3. 如何將俄文字符串轉換爲西裏爾字母?
- 4. 西裏爾字母域名
- 5. 西裏爾字母和PHPWord
- 6. 西裏爾字母符號
- 7. 如何將西裏爾字母粘貼到word文檔(phpword)?
- 8. 西里爾文字母爲「???」 - php
- 9. ASIHTTPRequest和西里爾文字母
- 10. 導入CSV文件西裏爾字母到MySQL - phpMyAdmin的
- 11. 德爾福。印及西裏爾字母
- 12. 使用jena庫將西里爾文寫入RDF文件
- 13. 烏克蘭字母RegEx。如何用大寫字母分隔西里爾詞彙?
- 14. 將西里爾文字母替換爲拉丁文
- 15. 亞馬遜S3和文件名中的西裏爾字母
- 16. 如何在JavaCC中支持西裏爾字母?
- 17. Symfony 2在數據庫中插入西裏爾字母
- 18. 按西裏爾字母排序
- 19. HTMLENTITIES不適用於西裏爾字母
- 20. 推送通知和西裏爾字母
- 21. 從字符串中提取西里爾文字母
- 22. 如何str_replaceЃ(西里爾文)
- 23. 如何轉換俄語西裏爾字母的字符串?
- 24. 用西里爾文在C++中讀寫文件
- 25. 如何將西里爾字符串轉換爲英文在c#
- 26. 用西里爾名字保存文件
- 27. XCode,字符串編碼,西里爾文字母
- 28. Android谷歌地圖標記與西裏爾字母文字
- 29. 檢查字符串是拉丁字母還是西里爾文
- 30. Ubuntu西里爾文件名
什麼錯誤,你得到什麼呢? – 2014-11-02 14:01:03
服務器應該返回json'{success:true}',並且客戶端用一個警告'Saved!'來響應。拉丁字母的作品,但與西裏爾字母我看不到來自服務器的迴應。 – Jacobian 2014-11-02 14:07:14