JS之漢字與Unicode碼的相互轉化

2021-08-21 05:05:26 字數 2004 閱讀 8810

有時候,我們在給後端傳遞變數的的值中有漢字,可能由於編碼的原因,傳遞到後端後變為亂碼了。所以有時候為了省事或者其它特殊要求的時候,會把傳遞的漢字轉換成unicode編碼後再進行傳遞。

當然漢字轉換成unicode編碼,使用js的charcodeat()方法就可以。

'好'.charcodeat(0).tostring(16

)"597d"

這段**的意思是,把字元'好'轉化成unicode編碼,tostring()就是把字元轉化成16進製制了

用法:charcodeat()方法可返回指定位置的字元的 unicode 編碼。這個返回值是 0 - 65535 之間的整數

語法:stringobject.charcodeat(index)

index引數必填,表示字串中某個位置的數字,即字元在字串中的下標。

注:字串中第乙個字元的下標是 0。如果 index 是負數,或大於等於字串的長度,則 charcodeat() 返回nan

例如:

var

str="hello world!"

document.write(str.charcodeat(1))

//結果:101

'好哦'.charcodeat(0).tostring(16

)"597d"

'好哦'.charcodeat(1).tostring(16

)"54e6"

要是想把unicode解碼成字元呢?

要想對unicode解碼的話,必須要用轉義字元'\u'

'\u54e6'

"哦"

總結下:

js unicode是以十六進製制**外加開頭\u表示的字串。即\unnnn

unicode 是為了解決傳統的字元編碼方案的侷限而產生的,它為每種語言中的每個字元設定了統一並且唯一的二進位制

編碼,以滿足跨語言、跨平台進行文字轉換、處理的要求。2023年開始研發,2023年正式公布。

下面先看乙個簡單的例子,漢字轉化為unicode方法:

function

tounicodefun(data)

return

str;

}var

resultunicode = tounicodefun('中國'); //

\u4e2d\u56fd

console.log(resultunicode);

unicode轉化為漢字的方法:

function

tochinesewords(data)

return

str;

}var

resultchinesewords = tochinesewords("\u4e2d\u56fd"

); console.log(resultchinesewords);

//中國

在網上找到另外乙個實現方式:

var

gb2312unicodeconverter=,

togb2312:

function

(str)

};var

result = gb2312unicodeconverter.tounicode('中國'); //

\u4e2d\u56fd

var result2 = gb2312unicodeconverter.tounicode(result); //

%5cu4e2d%5cu56fd

下面實現漢字轉unicode碼:

function

tounicode(s));

}

JS之漢字與Unicode碼的相互轉化

有時候,我們在給後端傳遞變數的的值中有漢字,可能由於編碼的原因,傳遞到後端後變為亂碼了。所以有時候為了省事或者其它特殊要求的時候,會把傳遞的漢字轉換成unicode編碼後再進行傳遞。當然漢字轉換成unicode編碼,使用js的charcodeat 方法就可以。好 charcodeat 0 tostr...

JS 漢字與Unicode碼的相互轉化

js檔案中,有些變數的值可能會含有漢字,畫面引入js以後,有可能會因為字符集的原因,把裡面的漢字都變成亂碼。後來發現網上的一些js裡會把變數中的漢字都表示成 u 開頭的16進製制編碼,這樣應該可以解決上面的問題。最近有時間在網上查詢了一下實現方式,一種比較大眾化的 function tounicod...

PHP獲取漢字unicode碼的通用函式

把乙個漢字轉為unicode的通用函式,不依賴任何庫,和別的自定義函式,但有條件 條件 本檔案以及函式的輸入引數應該用utf 8編碼,不然要加函式轉換 其實亦可輕易編寫反向轉換的函式,甚至不侷限於漢字,奇怪為什麼php沒有現成函式 author xieye param word 必須是乙個漢字,或代...