str="\udb17\ue20c"
str1.equal(Encoding.Unicode.GetString(Encoding.Unicode.GetBytes(str))
返回值是错的。
为什么,str经过unicode编码好,再转换回来,竟然不相同。
这个本来是想解决我前一个帖子的问题的
http://topic.csdn.net/u/20090522/08/11669b93-fa71-462a-b639-9fd678164403.html?seed=865533679
可是不行。
望高手指教。
str1.equal(Encoding.Unicode.GetString(Encoding.Unicode.GetBytes(str))
返回值是错的。
为什么,str经过unicode编码好,再转换回来,竟然不相同。
这个本来是想解决我前一个帖子的问题的
http://topic.csdn.net/u/20090522/08/11669b93-fa71-462a-b639-9fd678164403.html?seed=865533679
可是不行。
望高手指教。
string outStr = "";
if (!string.IsNullOrEmpty(str))
{
for (int i = 0; i < str.Length; i++)
{
//将中文字符转为10进制整数,然后转为16进制unicode字符
outStr += "\\u" + ((int)str[i]).ToString("x");
}
}//UNICODE字符转为中文 string str = "\\u4e2d\\u6587";
string outStr = "";
if (!string.IsNullOrEmpty(str))
{
string[] strlist = str.Replace("\\","").Split('u');
try
{
for (int i = 1; i < strlist.Length; i++)
{
//将unicode字符转为10进制整数,然后转为char中文字符
outStr += (char)int.Parse(strlist[i], System.Globalization.NumberStyles.HexNumber);
}
}
catch (FormatException ex)
{
outStr = ex.Message;
}
}
MessageBox.Show(str.Equals(Encoding.UTF7.GetString(Encoding.UTF7.GetBytes(str))).ToString());
string outStr = "";
if (!string.IsNullOrEmpty(str))
{
for (int i = 0; i < str.Length; i++)
{
//将中文字符转为10进制整数,然后转为16进制unicode字符
outStr += "\\u" + ((int)str[i]).ToString("x");
}
}
//UNICODE字符转为中文 string str = "\\u4e2d\\u6587";
string outStr = "";
if (!string.IsNullOrEmpty(str))
{
string[] strlist = str.Replace("\\","").Split('u');
try
{
for (int i = 1; i < strlist.Length; i++)
{
//将unicode字符转为10进制整数,然后转为char中文字符
outStr += (char)int.Parse(strlist[i], System.Globalization.NumberStyles.HexNumber);
}
}
catch (FormatException ex)
{
outStr = ex.Message;
}
} 正解!!!!!!!!!!!!!!