今天使用Unity讀取網頁數據的時候,有時候是好的,有時候顯示亂碼。
var request = UnityWebRequest.Get(url);
// Wait for the response and then get our data
yield return request.Send();
var data = request.downloadHandler.text;
後來發現網頁數據寫的格式是gbk,於是使用Encoding進行轉換讀取倒是成功了,不是亂碼。
Encoding encoding =Encoding.GetEncoding("gbk");
var data=encoding.GetString(request.downloadHandler.data);
在編輯器運行沒問題,但是發佈出exe卻發現讀取的時候會報錯:
Unsupported encoding 'GBK': Encoding name 'GBK' not supported
後來查找才知道,因爲打包出來的版本沒有帶dll,而編輯器帶了dll,解決方法如下:
將Unity安裝目錄中的\Editor\Data\Mono\lib\mono\unity 目錄下的 I18N.dll 和 I18N.CJK.dll 複製到Assets/Plugins目錄下,打包的時候會一起打包出去就行了。