双斜杠转换为单斜杠 str="\\udb17\\ue20c"如何转换为str="\udb17\ue20c"??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主要什么效果?单单要转换,这样就可以了:str.Replace("\\", "")因为\\里的第一个\是转义符号。但是这样就看不到\udb17的组合效果了,\udb17是一个转义字符,代表了一个Unicode字符。 在C#中str="\\udb17\\ue20c";显示的结果为:\udb17\ue20c要想显示\\udb17\\ue20c,需要这样写:str="\\\\udb17\\\\ue20c";然后要将双斜杠转为单斜杠:str="\\\\udb17\\\\ue20c";//原始str=\\udb17\\ue20cstr=str.Replace("\\","");//结果str=\udb17\ue20c str=@"\udb17\ue20c";这样用就不需要转 正解,如果你是想为str赋值为"\udb17\ue20c",就用这个赋值 str=@"\udb17\ue20c"; 谢谢大家,我从文本中读入\udb17\ue20c到程序中,会变成\\udb17\\ue20c,所以需要把它再转换回来的。如果直接用replace("\\","\")是不行的,因为“\”不能直接使用。 这样的话,正如你所说的,没有\udb17的组合效果了,而我想要的就是unicode字符的效果。 str=@"\udb17\ue20c";记住@这个用法很多哦。 我是想把字符串\udb17\ue20c中的db17和e20c提取出来,转换为unicode编码,再转换为字符串“\udb17\ue20c”可是不行。竟然说我是恶意刷屏,冤枉啊,我是心急啊。 //中文转为UNICODE字符 string str = "中文"; 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; } } 不需要那样str=@"\\udb17\\ue20c";str=str.Replace(@"\\",@"\");@不对字符串重解析 Word文档拆分文题,试题批量导入 c# webbrowser问题 远程USB视频监控 DataGrid数据重新绑定问题 C#如何实现vb中Event,RaiseEvent功能 请教使用C#合并两篇XML文档的操作! C# 编译后splitcontainer 的拆分条在哪? 为什么这个Bitmap不能保存? ADO数据库的问题,请大虾们救急。 sonic2001:我是《Visual C#.net 开发实践》的作者,向你说明一下情况 关于多次连接数据库出现重复连接代码的问题 望高手指教:unicode编码转换出错??
单单要转换,这样就可以了:str.Replace("\\", "")因为\\里的第一个\是转义符号。但是这样就看不到\udb17的组合效果了,\udb17是一个转义字符,代表了一个Unicode字符。
要想显示\\udb17\\ue20c,需要这样写:str="\\\\udb17\\\\ue20c";
然后要将双斜杠转为单斜杠:
str="\\\\udb17\\\\ue20c";//原始str=\\udb17\\ue20c
str=str.Replace("\\","");//结果str=\udb17\ue20c
这样用就不需要转
正解,如果你是想为str赋值为"\udb17\ue20c",就用这个赋值 str=@"\udb17\ue20c";
我从文本中读入\udb17\ue20c到程序中,会变成\\udb17\\ue20c,所以需要把它再转换回来的。如果直接用
replace("\\","\")是不行的,因为“\”不能直接使用。
记住@这个用法很多哦。
可是不行。竟然说我是恶意刷屏,冤枉啊,我是心急啊。
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;
}
}
str=str.Replace(@"\\",@"\");@不对字符串重解析