/*
*js Unicode編碼轉換
*/ var decToHex = function(str) {
var res=[];
for(var i=0;i < str.length;i++)
res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);
return "\\u"+res.join("\\u");
}
var hexToDec = function(str) {
str=str.replace(/\\/g,"%");
return unescape(str);
}
var str=decToHex("decToHex unicode 編碼轉換");
alert("編碼後:"+str+"\n\n解碼後:"+hexToDec(str));
字符串:
var str = "\\u6211\\u662Funicode\\u7F16\\u7801";
關於這樣的數據轉換為中文問題,常用的兩種方法。
1. eval 解析
str = eval("'" + str + "'"); // "我是unicode編碼"
2. unescape 解析
str = unescape(str.replace(/\\u/g, "%u")); // "我是unicode編碼"
Unicode小百科:
在計算機科學領域中,Unicode(統一碼、萬國碼、單一碼、標准萬國碼)是業界的一種標准,它可以使電腦得以呈現世界上數十種文字的系統。Unicode是基於通用字符集(Universal Character Set)的標准來發展,並且同時也以書本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版,ISBN-10: 0321480910)對外發表。Unicode包含了超過十萬個字符(在2005年,Unicode的第十萬個字符被采納且認可成為標准之一)、一組可用以作為視覺參考的代碼圖表、一套編碼方法與一組標准字符編碼、一套包含了上標字、下標字等字符特性的列舉等。
Unicode組織(The Unicode Consortium)是由一個非營利性的機構所運作,並主導Unicode的後續發展,其目標在於:將既有的字符編碼方案,以Unicode編碼方案來加以取代,特別是既有的方案在多語環境下,皆僅有有限的空間以及不相容的問題。
Unicode在字符集認可的成功,使其得以在電腦軟件的國際化與本地化領域中,廣泛且具優勢的被采用。這標准已在近年來的多種新科技當中被加以采用,包含了可擴展置標語言(XML)、Java編程語言、以及最新的操作系統中。
unicode編碼的編碼規則
比如要把“楊”編碼,我們可以新建一個記事本,輸入“楊”保存時選擇存為unicode編碼,然後查看文件二進制內容,前面的FF FE兩個字節是unicode編碼文件頭標志,接著的68 67兩個字節就是“楊”的unicode編碼,用計算器換算為十進制就是26472,現在可以在一個html文件裡面寫入“楊”,IE打開就顯示一個“楊”字。
當然,對於一般ASCII碼,unicode編碼與ASCII編碼一致,所以A可以顯示一個大寫字母“A”.