public static string GetHexFromChs(string s) //'汉字转16进制,s为传过来的汉字字符串
{
//if ((s.Length % 2) != 0)
// throw new ArgumentException("s is not valid chinese string!"); System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
//int m = s.Length;
// string str1 = "";
//Encoding.ASCII.GetString(
byte[] bytes = chs.GetBytes(s);
string str = "";
for (int i = 0; i < bytes.Length; i++)
{
str += string.Format("{0:X}", bytes[i]);
}
return str;
}Function GBToHex(sGB As String) As String 'sGB为传来的汉字字符串
'汉字转16进制
Dim sResult As String
Dim iLoop As Integer
sResult = ""
For iLoop = 1 To Len(sGB)
sResult = sResult + Right("0000" + Hex(Asc(Mid(sGB, iLoop, 1))), 4)
Next iLoop
GBToHex = sResult
End Function
{
//if ((s.Length % 2) != 0)
// throw new ArgumentException("s is not valid chinese string!"); System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
//int m = s.Length;
// string str1 = "";
//Encoding.ASCII.GetString(
byte[] bytes = chs.GetBytes(s);
string str = "";
for (int i = 0; i < bytes.Length; i++)
{
str += string.Format("{0:X}", bytes[i]);
}
return str;
}Function GBToHex(sGB As String) As String 'sGB为传来的汉字字符串
'汉字转16进制
Dim sResult As String
Dim iLoop As Integer
sResult = ""
For iLoop = 1 To Len(sGB)
sResult = sResult + Right("0000" + Hex(Asc(Mid(sGB, iLoop, 1))), 4)
Next iLoop
GBToHex = sResult
End Function
VB的转后 CDF6D003很多地方都是多了两三个零,其他的字符是一样的,这怎么让他们一样啊,我是用来软件注册的,VB的软件和C#的软件都判断这个注册号,VB的转的对,我用C#开发了一个新软件也判断这个号,现在不同C#的软件不能用,???
("{0:X2}", 这里的X2什么意思啊,就是补充的零的个数吗
for (int i = 0; i < bytes.Length; i++)
{
str += string.Format("{0:X}", bytes[i]);
} 可以改为:str = BitConverter.ToString(bytes).Replace("-","");
这是什么?我的C#生成的字符中没有“-”这个符号啊,
V5就是威武,最近流行的网络缩略语
C#代码完全不对了
{
Encoding encoding = Encoding.GetEncoding("GB2312");
StringBuilder builder = new StringBuilder();
foreach (char c in s)
{
builder.Append(BitConverter.ToString(encoding.GetBytes(c.ToString())).Replace("-","").PadLeft(4,'0'));
}
return builder.ToString();
}