簡體   English   中英

所需的字符編碼轉換列表:Windows-1252到UTF-8

[英]List of character encoding conversions required : windows-1252 to UTF-8

我有一個SQL Server數據庫,里面充滿了編碼錯誤的字符。 問題在於ETL是用Java編寫的,默認編碼錯誤,因此直接加載了編碼錯誤的字符。 數據庫實際上包含字符Ã而不是ö

我已經解決了ETL的問題,現在我想解決現有數據。 我知道我可以使用REPLACE()替換字符,但是我的問題是我沒有確定的字符列表以及它們的“假定”名稱。

我已經在互聯網上搜尋了某種確定的清單,但找不到。 我只需要一個這樣的清單:

ö>ö

é>é

等等

編輯:我首先認為“壞”編碼是ISO 8859-15,實際上我只是檢查了以前的默認字符集,它是Windows-1252。 我已經更新了帖子的標題。

這是一個很大的清單。 UTF-8將每個Unicode代碼點的所有Unicode編碼為一到四個字節。 有1,114,111個Unicode代碼點(如果對UTF-16替代產品打折,則為1,112,064)。

使用Windows-1252讀取字符串,使用Windows-1252將它們編碼為字節,使用UTF-8解碼將更加容易。 Python中的示例,因為我可以進行演示:

>>> s = 'öé'
>>> s.encode('Windows-1252').decode('UTF-8')
'öé'

但是請注意,Windows-1252有損。 UTF-8中使用的某些字節在Windows-1252中沒有定義,因此有可能在寫入數據庫時​​將其刪除。 也有可能使用了ISO-8859-1 (又名latin1 ),它接近Windows-1252,但所有字節均已定義。

暫無
暫無

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

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