JS基礎編--JSの漢字とユニックコードの相互変換

2656 ワード

時には、バックエンドに変数を渡す値に漢字があります.コードのせいでバックエンドに伝達されて文字化けになってしまうかもしれません.ですから、用事や特別な要求を省くために、伝達された漢字をユニックコードに変換して渡すことがあります.
もちろん、漢字は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は、16進数コードに加えて先頭\uで表される文字列である.\unnnnですUnicodeは、従来の文字符号化スキームの限界を解決するために生成されたものであり、各言語における各文字に対して統一され、一意のバイナリ符号化を設定して、言語を横断し、プラットフォームを横断してテキスト変換、処理の要求を満たす.1990年に研究開発を開始し、1994年に正式発表された.
まず簡単な例を見て、漢字をunicodeに変換する方法を説明します.
function toUnicodeFun(data){
  if(data == '' || typeof data == 'undefined') return '     ';
   var str =''; 
   for(var i=0;i
unicodeを漢字に変換する方法:
function toChineseWords(data){
    if(data == '' || typeof data == 'undefined') return '       unicode';
    data = data.split("\\u");
    var str ='';
    for(var i=0;i
インターネットで別の実現方法を見つけました.
var GB2312UnicodeConverter={
    ToUnicode:function(str){
       return escape(str).toLocaleLowerCase().replace(/%u/gi,'\\u');
    },
    ToGB2312:function(str){
       return unescape(str.replace(/\\u/gi,'%u'));
    }
};
var result = GB2312UnicodeConverter.ToUnicode('  '); //\u4e2d\u56fd
var result2 = GB2312UnicodeConverter.ToUnicode(result); //%5cu4e2d%5cu56fd
以下は漢字からUnicodeコードへの変換を実現します.
function toUnicode(s){ 
    return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g,function(newStr){
        return "\\u" + newStr.charCodeAt(0).toString(16); 
    }); 
}