在 Unity 裡使用 System.Text.Encoding 功能時,如果 CodePage 設定成 950 (BIG-5) 的話,各位可能會發現,在編輯器下執行沒有問題(甚至預設的 CodePage 就是 950),但將程式編譯為執行檔之後執行會得到類似的訊息:
System.NotSupportedException: CodePage 950 not supported
at System.Text.Encoding.GetEncoding (Int32 codepage) [0x00000] in <filename unknown>:0
...
而且預設的 CodePage 變成 UTF8 @@
參考這篇討論,原因是少了幾個動態連結檔,將 C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity 目錄下的 I18N.dll 和 I18N.CJK.dll 複製到編譯結果的目錄裡即可排除上述情況(與 System.Data.dll 同目錄)。
System.NotSupportedException: CodePage 950 not supported
at System.Text.Encoding.GetEncoding (Int32 codepage) [0x00000] in <filename unknown>:0
...
而且預設的 CodePage 變成 UTF8 @@
參考這篇討論,原因是少了幾個動態連結檔,將 C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity 目錄下的 I18N.dll 和 I18N.CJK.dll 複製到編譯結果的目錄裡即可排除上述情況(與 System.Data.dll 同目錄)。