JavaScript為unicode編碼轉換為中文


var str = "\\u6211\\u662Funicode\\u7F16\\u7801"; 

關於這樣的數據轉換為中文問題,常用的以下方法。

1. eval解析或new Function("'+ str +'")()

str = eval("'" + str + "'"); // "我是unicode編碼"

2. unescape 解析

str = unescape(str.replace(/\u/g, "%u")); // "我是unicode編碼"

 

C#中文和UNICODE字符轉換方法

解碼

public string uncode(string str)  
        {  
            string outStr = "";  
            Regex reg = new Regex(@"(?i)//u([0-9a-f]{4})");  
            outStr = reg.Replace(str, delegate(Match m1)  
            {  
                return ((char)Convert.ToInt32(m1.Groups[1].Value, 16)).ToString();  
            });  
            return outStr;  
        }  

 

 

C#

    /// <summary>
    /// 將漢字轉換為Unicode
    /// </summary>
    /// <param name="text">要轉換的字符串</param>
    /// <returns></returns>
    public static string GBToUnicode(string text)
    {
        byte[] bytes = System.Text.Encoding.Unicode.GetBytes(text);
        string lowCode = "", temp = "";
        for (int i = 0; i < bytes.Length; i++)
        {
            if (i % 2 == 0)
            {
                temp = System.Convert.ToString(bytes[i], 16);//取出元素4編碼內容(兩位16進制)
                if (temp.Length < 2) temp = "0" + temp;
            }
            else
            {
                string mytemp = Convert.ToString(bytes[i], 16);
                if (mytemp.Length < 2) mytemp = "0" + mytemp; lowCode = lowCode + @"\u" + mytemp + temp;//取出元素4編碼內容(兩位16進制)
            }
        }
        return lowCode;
    }

    /// <summary>
    /// 將Unicode轉換為漢字
    /// </summary>
    /// <param name="name">要轉換的字符串</param>
    /// <returns></returns>
    public string UnicodeToGB(string text)
    {
        MatchCollection mc = Regex.Matches(text, "([\\w]+)|(\\\\u([\\w]{4}))");
        if (mc != null && mc.Count > 0)
        {
            StringBuilder sb = new StringBuilder();
            foreach (Match m2 in mc)
            {
                string v = m2.Value;
                string word = v.Substring(2);
                byte[] codes = new byte[2];
                int code = Convert.ToInt32(word.Substring(0, 2), 16);
                int code2 = Convert.ToInt32(word.Substring(2), 16);
                codes[0] = (byte)code2;
                codes[1] = (byte)code;
                sb.Append(Encoding.Unicode.GetString(codes));
            }
            return sb.ToString();
        }
        else
        {
            return text;
        }
    }

js

<script Language=Javascript>
var classObj=
     {
       ToUnicode:function(str) 
       {
        return escape(str).replace(/%/g,"\\").toLowerCase();
       },
    
       UnUnicode:function(str)
       {
        return unescape(str.replace(/\\/g, "%"));
       },

      copyingTxt:function(str)
      {
       document.getElementById(str).select(); 
       document.execCommand("Copy"); 
      }
    }
</script>
<textarea id=codes style="width:500px;height:300px"></textarea><br><br>
<input type=button value=Unicode加密 onclick=javascript:codes.value=classObj.ToUnicode(codes.value)>
<input type=button value=Unicode解密 onclick=javascript:codes.value=classObj.UnUnicode(codes.value)>
<input type=button value=復制上面文本 onclick=javascript:classObj.copyingTxt("codes")>
<input type=button value=清空上面內容 onclick=javascript:codes.value="">

Java:
public static void main(String[] args) {
        String str = "\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd";
        //char[] charArray = str.toCharArray();
        //str = new String(charArray);
        System.out.println(str);
        System.out.print(str.equals("中華人民共和國"));
    }

 

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”. 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM