2015-06-14 36 views
0

我正在研究一些將讀取用戶文本消息並將其導出到csv文件的東西,然後他們可以下載它們。這些消息正在從第三方Web界面中檢索 - 我基本上是使用js來獲取每條消息的html並根據需要進行編譯。每個消息的內容都被添加到一個變量中,一旦收集到所有消息,它就會被賦予一個新的Blob,然後將其下載。基於UTF-8十六進制代碼處理字符

我遇到的問題是,在這個網絡界面中,表情符號被表示爲圖像而不是字符。因此,寫入含有表情符號文件的消息時,其結果是爲這樣:

"Blah blah blah <img height="18px" width="18px" class="emoji adjustedSpriteForMessageDisplay spriteEMOJI sprite-1f612" data-textvalue="%F0%9F%98%92" src="assets/blank.gif">" 

現在,從該圖像中,我們可以得到2個可行值:

的UTF-8十六進制值

F09F9892 

和Unicode codepoint(我可能指的是這個錯誤,我不太瞭解編碼)。現在

U+1f612 

,我想要做的就是採取任何這些值(取效果更好),並將其寫入csv文件的字符本身。這樣,在文本編輯器查看CSV文件或者你有什麼的時候,它會顯示爲

enter image description here

雖然我不知道在哪裏即使有這樣的開始。也許這很簡單,就像在字符值中引入一些語法一樣簡單,但是我一直無法從Google獲取任何內容,因爲我對編碼不夠熟悉,無法知道Google要做什麼。

+0

decodeURI('%F0%9F%98%92') - > [smile](http://unicode-table.com/en/1F612/) – befzz

回答

1

當你從網頁抓住它,而不是從字符串中提取它以後的我建議預處理的數據。

然後可以使用decodeURIComponent()的百分比編碼字符串解碼:

decodeURIComponent('%F0%9F%98%92') 

再加上jQuery來訪問data-textvalue -attribute:

decodeURIComponent($(element).data('textvalue')) 

我創建了JSFiddle一個簡單的例子。 出於某種原因,表情符號在我的瀏覽器的結果屏幕中無法正確顯示,但這是一個字體問題。當使用DOM檢查器查看結果(或將文本複製到不同的應用程序中)時,結果以笑臉顯示。

相關問題