当前位置:编程学习 > C#/ASP.NET >>

如何将汉字转换成Unicode码

或者直接转换成16进制 --------------------编程问答-------------------- 直接使用WideString就可以了。比如:   
  WideString   wstr("汉字");   
  wstr.c_bstr() --------------------编程问答-------------------- http://blog.csdn.net/xwchen/archive/2007/03/21/1536829.aspx
这里有转换编码的资料。。。。 --------------------编程问答-------------------- // C# Style
string word = "我是中国人";
byte[] bytes = System.Text.Encoding.Unicode.GetBytes(word); //注意, 一个汉字需要两个字节表示 --------------------编程问答-------------------- // 16 进制字符串表示
 void StringBytesConverter4()
    {
        const char SEPARATOR = ' ';
        string str1 = "我是中国人";
        // specifies the Encoding method
        Encoding encoding;
        encoding = System.Text.Encoding.Unicode;
        // also as 
        // encoding = System.Text.Encoding.UTF8;
        // encoding = System.Text.Encoding.GetEncoding("GB2312");
        // more encodings ...

        // string > bytes
        byte[] bytes = encoding.GetBytes(str1);
        // joins the bytes
        string str2 = "";
        foreach (byte b in bytes) {
            str2 += b.ToString("X") + SEPARATOR.ToString();
        }
        if (str2.Length > 0) str2 = str2.Remove(str2.Length - 1, 1);
        // splits and converts the joined string to bytes
        string[] strArray = str2.Split(new char[] { SEPARATOR });
        byte[] bytes2 = Array.ConvertAll<string, byte>(strArray, delegate(string str) { return byte.Parse(str, System.Globalization.NumberStyles.AllowHexSpecifier); });
        // bytes > string
        string str3 = encoding.GetString(bytes2);
        // out
        Response.Write("original string: " + str1);
        Response.Write("<br/>");
        Response.Write("joined bytes: " + str2);
        Response.Write("<br/>");
        Response.Write("recovered string: " + str3);
    }
/*输出
original string: 我是中国人
joined bytes: 11 62 2F 66 2D 4E FD 56 BA 4E
recovered string: 我是中国人 
*/ --------------------编程问答-------------------- string word = "我是中国人";
byte[] bytes = System.Text.Encoding.Unicode.GetBytes(word); 
string str2 = "";
for(int i=0; i < bytes.Length; i+=2) { // 步长为2
str2 +=  "%" + bytes[i].ToString("X")+bytes[i+1].ToString("X");
}
Response.Write(str2); --------------------编程问答-------------------- 没有泽么复杂吧
直接用AscW函数就可以了 --------------------编程问答-------------------- HttpUtility.UrlEncode("我是中国人", System.Text.Encoding.GetEncoding("GB2312"))

HttpUtility.UrlEncode("我是中国人", System.Text.UnicodeEncoding.GetEncoding("GB2312")) --------------------编程问答-------------------- VB自身不就是用UTF16存啊?只需要在写出和读入的时候指定编码就行了。 --------------------编程问答-------------------- 孟子来了,
我什么也不说只接分 --------------------编程问答--------------------         static void Main(string[] args)
        {
            string xm = "我是中国人";
            //先将字符串变成字符数组
            char[] ch=xm.ToCharArray();
            for (int i = 0; i < ch.Length; i++)
            {
                //字符和数字相加得到的是数字,这样汉字就转换成了数字
                Console.WriteLine((0 + ch[i]));
            }
            Console.ReadKey();
        }
这个可以直接得到汉字的unicode值
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,