我正在嘗試讀取 .txt 檔案并將文本放入物件中。然后稍后序列化所述物件并寫入另一個.txt,同時保持完全相同的字符。
我在使用時嘗試使用“iso-8859-1”編碼,File.ReadAllLines()但我得到以下
結果:
我也嘗試過為序列化創建一個自定義的 JavascriptEncoder,但這沒有用,我假設因為讀取甚至沒有得到正確的字符。
有沒有辦法可以為兩者撰寫自定義編碼器,File.ReadAllLines()這樣JsonSerializer.Serialize()我就可以在整個程序中保持完全相同的字符。謝謝
編輯:我完全洗掉了編碼,它適用于大多數字符,但仍將 '?' 回傳為 'o'。原文: sf?r ?r du s?ker p? a un1? ko róci? kolejno?? numeró e?y pamiêta?, ?ew a?n nie? w górê g3ówna w3a?c
uj5u.com熱心網友回復:
最終,如果你要讀寫文本:你需要知道你打算使用什么編碼。您通常無法猜測。實際上沒有“文本檔案”之類的東西。只有一個二進制檔案,您的代碼將通過編碼將其轉換為文本;系統可以猜測,或者您可以告訴它。如今,UTF8 是一種實用的默認設定,而諸如 iso-8859-1 之類的 ANSI 編碼通常應被視為遺留編碼,并保留用于處理由于歷史原因而僅限于該特定代碼頁的資料
所以,要么:
- 確定您打算使用的編碼并將其用于讀取和寫入,或者
- 將資料視為原始位元組,而不嘗試將其決議為字串(等)資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511781.html
標籤:C#文件序列化统一码编码
