我正在致力於從一些網站獲取一些數據然後存儲到數據庫中的項目。但這些網站包含不同的字符集,如utf-8,gbk。獲取的數據是unicode,所以我想知道何時轉換爲字符串是正確的方法。我現在立即轉換爲字符串,但似乎python建議儘可能保持unicode,我不明白爲什麼?因爲我們一直不知道unicode對象的字符集。何時將unicode轉換爲字符串?
回答
unicode
s不要有一個字符集;他們是純文本。在僅接受字節的介質中存儲或傳輸時,只能轉換爲字節串。
在你的應用程序來處理文本的建議是:
- 從一些地方獲取輸入字節(編碼字符串)
- 對其進行解碼成
Unicode
與Unicode
您的應用程序內工作。 - 無論何時您想要輸出文本,都要對其進行編碼。
如果您抓取網頁,我已經看到BeautifulSoup
和其他庫,它們爲Unicode轉換傳入字節的工作。所以在你的應用程序中,你可以使用Unicode來處理它們。
如果你想將它存儲在數據庫中,可能是該數據庫中utf-8
編碼,如果沒有,學什麼它的編碼是和當你準備寫信息到數據庫,對其進行編碼第一。
text = text.encode('utf-8') # or the encode used by your DB
db.persist(text) # pseudocode here ;)
這樣你unicode的保護層在您的應用程序的前面,輸入和輸出。
希望這會有所幫助!
一個好的數據庫適配器需要'unicode'併爲你找出字符集。 –
是的,我使用'BeautifulSoup'從網站獲取數據。但我認爲我從'BeautifulSoup'獲得的unicode可能無法使用'utf-8'字符集進行解碼,所以我不能僅使用'.encode(「utf-8」)'轉換爲字符串。所以這裏是一個問題:如果我不盡快轉換爲字符串,當我在我的程序中執行一些字符串過程(比如正則表達式匹配)時,我將會丟失。 –
任何unicode都可以解碼,我不太明白你的意思。關於正則表達式,他們可以很好地處理unicode,你可以很好地將Unicode應用於正則表達式。 –
- 1. 如何將包含unicode字符的字符串轉換爲unicode?
- 2. C#將Unicode轉換爲字符串
- 3. 將unicode字符串轉換爲float
- 4. NSBatchUpdateRequest將字符串轉換爲unicode
- 5. 將unicode字符串轉換爲utf8
- 6. 將AnsiString轉換爲Unicode字符串
- 7. 將Unicode轉換爲字符串Java
- 8. 將字符串轉換爲unicode
- 9. 將unicode轉換爲字符串
- 10. 將Unicode字符串轉換爲ASCII
- 11. 如何將字符串轉換爲Perl中的unicode字符串
- 12. 如何將Unicode編碼的字符串轉換爲字符串
- 13. 將Unicode轉換爲字符
- 14. 如何將逐字字符串轉換爲常規Unicode字符
- 15. 將unicode字符串轉換爲字節字符串
- 16. 如何將Unicode轉義序列轉換爲.NET字符串中的Unicode字符?
- 17. 如何將字符串轉換爲其unicode轉義符?
- 18. 如何將Unicode代碼點轉換爲Unicode字符串?
- 19. 在Unicode中將unicode字符串轉換爲可用的unicode
- 20. 如何將字符串轉換爲unicode字符?
- 21. 如何將unicode字符串轉換爲字符
- 22. 位移並將字符轉換爲Unicode轉義字符串
- 23. 將unicode字符串轉換爲字符串
- 24. 將url編碼的字符串轉換爲python unicode字符串
- 25. Python:將ascii字符串轉換爲unicode字符串
- 26. PHP - 將unicode字符串轉換爲字符串?
- 27. 如何將帶有Unicode字符的字符串轉換爲普通字符串?
- 28. 將字符串轉換爲C#Unicode字符文字的序列
- 29. 將unicode的字符串表示形式轉換爲unicode
- 30. python unicode woes - 將cp1252字符串轉換爲unicode
Unicode是每個其他字符集的超集,因此它對於保存角色是安全的。 –