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

字符串,byte数组,ASCII码转换

我有一个字符串,例如"中华人民共和国".我想得到它对应的byte数组,它对应的ASCII码。请各位大哥大姐们帮帮忙,最好用c#写,我们老板让我做出来,我也是第一次接触这方面,请高手帮解决下,不胜感激。 --------------------编程问答-------------------- string test = "中华人民共和国";

byte[] testBytes = System.Text.Encoding.Unicode.GetBytes( test );

--------------------编程问答-------------------- ASCII不支持中文吧?
如果是英数字组成的字符串,一个一个的处理强制转化为byte类型,不就行了? --------------------编程问答-------------------- Function   EscapeX(sIn   As   String)   As   String   
          On   Error   Resume   Next   
          Dim   i   As   Long   
          Dim   btmp()   As   Byte   
            
          btmp   =   StrConv(sIn,   vbFromUnicode)   
          For   i   =   LBound(btmp)   To   UBound(btmp)   
                  EscapeX   =   EscapeX   &   "%"   &   Right("00"   &   Hex(btmp(i)),   2)   
          Next   
  End   Function   

EscapeX("中华人民共和国")    --------------------编程问答--------------------
引用 2 楼 Jack_xiao 的回复:
ASCII不支持中文吧? 
如果是英数字组成的字符串,一个一个的处理强制转化为byte类型,不就行了?


别瞎说。

    string str = "走,去嘿咻";
    foreach (char c in str)
    {
        int i = (int)c;
        Console.WriteLine(i);
    }
--------------------编程问答-------------------- 这就得到ASCII码值了。 --------------------编程问答--------------------
引用 1 楼 antiking 的回复:
string test = "中华人民共和国"; 

byte[] testBytes = System.Text.Encoding.Unicode.GetBytes( test ); 

第一个问题的解...
string str = "走,去嘿咻"; 
    foreach (char c in str) 
    { 
        int i = (int)c; 
        Console.WriteLine(i); 
    } 
第二个问题的解... --------------------编程问答--------------------

string str = "中华人民共和国";
Encoding encoding = Encoding.ASCII;
Byte[] encodedBytes = encoding.GetBytes(str);
--------------------编程问答-------------------- 但是两种方法的结果不一样... --------------------编程问答--------------------
引用 7 楼 pp_shy 的回复:
C# code
string str = "中华人民共和国";
Encoding encoding = Encoding.ASCII;
Byte[] encodedBytes = encoding.GetBytes(str);


刚刚试验了下,ASCⅡ编码方式是不支持中文! --------------------编程问答-------------------- C#中的ASCⅡ编码方式是将16位字符编码成ASCⅡ字符;当值小于0x0080的16位字符被转换成单字节。值超过0x007F的任何字符都不能被转换,否则字符的值会丢失。 --------------------编程问答-------------------- 转成ASCII有什么用? --------------------编程问答--------------------
引用 9 楼 pp_shy 的回复:
引用 7 楼 pp_shy 的回复:
C# code 
string str = "中华人民共和国"; 
Encoding encoding = Encoding.ASCII; 
Byte[] encodedBytes = encoding.GetBytes(str); 
 

刚刚试验了下,ASCⅡ编码方式是不支持中文!

这个不行? --------------------编程问答--------------------
引用 4 楼 snailrain 的回复:
引用 2 楼 Jack_xiao 的回复:
ASCII不支持中文吧? 
如果是英数字组成的字符串,一个一个的处理强制转化为byte类型,不就行了? 
 

别瞎说。 

    string str = "走,去嘿咻"; 
    foreach (char c in str) 
    { 
        int i = (int)c; 
        Console.WriteLine(i); 
    } 

别瞎说...你那得到的是Unicode编码...ASCII码不可能支持中文... --------------------编程问答-------------------- 谁说不支持中文???
计算机就是把数据按照ASCII码规则以二进制存储的。
除非计算机不认识中文,否则ASCII码支持中文。
其实ASCII码还支持日文,啥啥文。。

    string str = "走,去嘿咻"; 
    foreach (char c in str) 
    { 
        int i = (int)c; 
        Console.WriteLine(i); 
    } 
我这方法,不是获得byte数组,而是每次遍历打印出的就是ASCII码!!!

希望,大家以后看清楚。理解好ASCII码值本质,再说。

另外,
引用 9 楼 pp_shy 的回复:
引用 7 楼 pp_shy 的回复:
C# code 
string str = "中华人民共和国"; 
Encoding encoding = Encoding.ASCII; 
Byte[] encodedBytes = encoding.GetBytes(str); 
 

刚刚试验了下,ASCⅡ编码方式是不支持中文!

你这根本不是获取ASCII码值!而是获得byte数组!

--------------------编程问答-------------------- 因为计算机只识别,二进制数。
那么英文字母,汉字,等等,是如何被计算机识别的?
就是靠ASCII码。
ASCII码是一种规则。
将相应的英文字母,汉字,变成相应的二进制数,让计算机识别。
比如英文A的ASCII值是65,当然在计算机中是用65的二进制表示的。
理所应当,计算机要识别汉字,那么汉字也必须有对应的ASCII码。

    string str = "走,去嘿咻"; 
    foreach (char c in str) 
    { 
        int i = (int)c; 
        Console.WriteLine(i); 
    } 
我的这个方法中,将字符,强转化为int类型。
有人会疑惑,这并非属于数字类型字符,怎么能转化成int?
放心,因为我们得到的是这些字符相应的ASCII值。

好了,说完了,语气有点不恭敬的地方,请大家谅解。
我有点激动。
如有不对,请反驳。 --------------------编程问答--------------------
支持楼上的 --------------------编程问答--------------------
引用 14 楼 snailrain 的回复:
谁说不支持中文??? 
计算机就是把数据按照ASCII码规则以二进制存储的。 
除非计算机不认识中文,否则ASCII码支持中文。 
其实ASCII码还支持日文,啥啥文。。 

    string str = "走,去嘿咻"; 
    foreach (char c in str) 
    { 
        int i = (int)c; 
        Console.WriteLine(i); 
    } 
我这方法,不是获得byte数组,而是每次遍历打印出的就是ASCII码!!! 

希望,大家以后看清楚。理解好ASCII码…


请你搞清楚,你得到的是Unicode编码吗?
你清楚Unicode编码是什么吗? --------------------编程问答--------------------
引用 15 楼 snailrain 的回复:
因为计算机只识别,二进制数。 
那么英文字母,汉字,等等,是如何被计算机识别的? 
就是靠ASCII码。 
ASCII码是一种规则。 
将相应的英文字母,汉字,变成相应的二进制数,让计算机识别。 
比如英文A的ASCII值是65,当然在计算机中是用65的二进制表示的。 
理所应当,计算机要识别汉字,那么汉字也必须有对应的ASCII码。 

    string str = "走,去嘿咻"; 
    foreach (char c in str) 
    { 
        int i = (…

知之为知之...不知去看书...激动是没有意义的...

ASCII码是IT专业最最基础的知识...真不知道现在的教材都是谁编的现在的教师都是怎么教出来的... --------------------编程问答-------------------- 顶上去 别沉了...到底哪个是正确的? --------------------编程问答--------------------
引用 18 楼 vrhero 的回复:
引用 15 楼 snailrain 的回复:
因为计算机只识别,二进制数。 
那么英文字母,汉字,等等,是如何被计算机识别的? 
就是靠ASCII码。 
ASCII码是一种规则。 
将相应的英文字母,汉字,变成相应的二进制数,让计算机识别。 
比如英文A的ASCII值是65,当然在计算机中是用65的二进制表示的。 
理所应当,计算机要识别汉字,那么汉字也必须有对应的ASCII码。 

    string str = "走,去嘿咻"; 
    foreach (char c in st…

补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,