給定一個System.Text.Encoding
實例和一個字符串,如何以編程方式確定該字符串是否可以使用該編碼表示?如何確定一個字符串是否可以使用給定的編碼來表示
我正在編寫一個序列化庫,並且在編寫一個字符串時,我需要知道該字符串是否可以原樣寫入,或者是否需要轉義。
我看着Encoding
的成員,但似乎沒有提供該信息。一種選擇可能是以某種方式創建一個等效實例Encoding
,但是自定義EncoderFallback
將捕獲它是否已被使用,然後嘗試使用編碼將字符串轉換爲字節。雖然這看起來有點不合理,效率也不高。
雖然我明白你的問題,我沒有看到與序列化的關係,我不明白爲什麼你需要這些信息。希望有大量的系統將這些信息序列化爲字符串。 –
儘管與序列化沒有嚴格關係,但我遇到的問題是輸出格式旨在爲人類可讀。因此,如果編碼支持它,我想直接寫文本。否則,格式支持轉義字符以ASCII碼編碼任何代碼點。 –
您可以在這裏獲得其他字符集與Unicode之間的映射列表,例如:http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/。 (我還沒有運行任何具有多種編碼的非Unicode字符集。) –