字符串,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("中华人民共和国") --------------------编程问答--------------------
别瞎说。
string str = "走,去嘿咻";
foreach (char c in str)
{
int i = (int)c;
Console.WriteLine(i);
}
--------------------编程问答-------------------- 这就得到ASCII码值了。 --------------------编程问答--------------------
第一个问题的解...
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);
刚刚试验了下,ASCⅡ编码方式是不支持中文! --------------------编程问答-------------------- C#中的ASCⅡ编码方式是将16位字符编码成ASCⅡ字符;当值小于0x0080的16位字符被转换成单字节。值超过0x007F的任何字符都不能被转换,否则字符的值会丢失。 --------------------编程问答-------------------- 转成ASCII有什么用? --------------------编程问答--------------------
这个不行? --------------------编程问答--------------------
别瞎说...你那得到的是Unicode编码...ASCII码不可能支持中文... --------------------编程问答-------------------- 谁说不支持中文???
计算机就是把数据按照ASCII码规则以二进制存储的。
除非计算机不认识中文,否则ASCII码支持中文。
其实ASCII码还支持日文,啥啥文。。
string str = "走,去嘿咻";
foreach (char c in str)
{
int i = (int)c;
Console.WriteLine(i);
}
我这方法,不是获得byte数组,而是每次遍历打印出的就是ASCII码!!!
希望,大家以后看清楚。理解好ASCII码值本质,再说。
另外,
你这根本不是获取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值。
好了,说完了,语气有点不恭敬的地方,请大家谅解。
我有点激动。
如有不对,请反驳。 --------------------编程问答--------------------
支持楼上的 --------------------编程问答--------------------
请你搞清楚,你得到的是Unicode编码吗?
你清楚Unicode编码是什么吗? --------------------编程问答--------------------
知之为知之...不知去看书...激动是没有意义的...
ASCII码是IT专业最最基础的知识...真不知道现在的教材都是谁编的现在的教师都是怎么教出来的... --------------------编程问答-------------------- 顶上去 别沉了...到底哪个是正确的? --------------------编程问答--------------------
。
补充:.NET技术 , ASP.NET