2014-06-08 46 views
0

我正在開發一個通過AJAX與服務器通信的網頁。服務器期望以特定格式提供二進制數據。目前,我的JavaScript代碼可以生成服務器期望的全部數據,除了一部分由一些字符串參數的UTF-8表示組成。在JavaScript中跨瀏覽器編碼字符串(UTF-8中的二進制數據)

簡而言之,我需要的是一個JavaScript函數,它獲得一個字符串s並將它的UTF-8表示形式返回爲Uint8Array

這是很容易在Firefox中,它具有TextEncoder類:

function utf8(s) { 
    return new TextEncoder().encode(s); 
} 

不幸的是,Firefox是不是唯一的瀏覽器那裏;-)有誰知道的方式做到這一點的跨瀏覽器?

我可以寫出自己的編碼器,但我寧願使用本地的東西,如果可能的話。

注意:只要在Google Chrome上有效,我會很高興地歡迎使用非跨瀏覽器解決方案。

+0

既然你知道你的問題的解決方案是一個UTF-8編碼器,我投票關閉它,因爲它要求圖書館的建議。谷歌可以在一秒鐘內回答。 – Jon

+0

@Jon - 我不是在找圖書館。此外,谷歌沒有回答我的問題(谷歌是我的第一次,第二次......和第十次嘗試之前來到)。 – Tom

+0

恩,[它回答了我的問題](https://www.google.gr/#q=js+utf-8+encode)。 – Jon

回答

0

Encoding Living Standard API有polyfill,其中TextEncoder是其中的一部分。

TextEncoder正在Chrome 38中出貨。請參閱Encoding API來自Chromium Dashboard和Chromium的條目問題398149:文本編碼API。

+0

謝謝,@Kevin!不再適合我了,但我希望有人會在未來發現它有用。 – Tom

相關問題