C#字符串(折磨我一天了)

Lixin19821010 2007-11-29 03:10:51
string A = "\\u4e59\\u70ef";
如何利用A,使用一个方法,得到结果:
"\u4e59\u70ef".
(C#, VS2005)
...全文
678 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltp200406857 2007-12-01
  • 打赏
  • 举报
回复
string A= @"\u4e59\u70ef";
ltp200406857 2007-12-01
  • 打赏
  • 举报
回复
string A= @"\\u4e59\\u70ef";
Lixin19821010 2007-12-01
  • 打赏
  • 举报
回复
十分感谢大家的帮助,由于20分实在是太少了,分不过来,呵呵.我想在这里大家一起讨论交流是主要的,分并不是重要的.对于大家的方法我都试了试.觉得很爽,团结的力量是大大的.谢谢大家
enaking 2007-11-30
  • 打赏
  • 举报
回复
A=A.Replace(@"\\",@"\")
Lixin19821010 2007-11-30
  • 打赏
  • 举报
回复
首先十分感谢大家的回复.
其次要说明几点,我不知道大家的Replace(@"\\",@"\")方法用起来效果是如何的.
但是在我这里,在我的机器window xp(sp2) + VS 2005 + EastAsia LanguagePack:
string A = "\\u4e59\\u70ef";
Console.WriteLine(A); //输出:\u4e59\u70ef

string B = A.Replace(@"\\", @"\");
Console.WriteLine(B); //输出:\u4e59\u70ef
而用Remove(),SubString()等等,都是不可行的.
我老板说是采用国际通用标准Unicode编码,格式为\uxxx,但是我得到的总是\\uxxx.数据源为EXCEL的内的脚本.在EXCEL里的显示为:rows=[
#代码 名称 组 输出组内明细
('BC=','乙烯', 0, 0),
('NA1','石脑油', 0, 0),
('LHC','轻烃', 0, 0),
('AGO','AGO', 0, 0).......]
当然,我只拿出"乙烯"这两个汉字进行举例操作.
最后十分感谢大家关注.
不结帖的原因是因为我觉得可能还会有更好的答案.谢谢大家

sanweizhao 2007-11-30
  • 打赏
  • 举报
回复
补充:
主要是涉及到转义符的问题,找资料看看就明白了.上面写的就是直接的,不要转义就传过去.
sanweizhao 2007-11-30
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string A = "\\u4e59\\u70ef";
string b = A.Replace(@"\\",@"\");
Console.WriteLine(b);
Console.ReadLine();
}
}
}
Code従業員 2007-11-30
  • 打赏
  • 举报
回复
路过留影
J_kiro 2007-11-30
  • 打赏
  • 举报
回复
为啥还不给人结贴呢
myccc456 2007-11-30
  • 打赏
  • 举报
回复
学习学习
soaringbird 2007-11-30
  • 打赏
  • 举报
回复
byte[] b = new byte[] {0x59,0x4e,0xef,0x70 };
string s =Encoding.Unicode.GetString(b);
Console.WriteLine(s);
这样就可以输出“乙烯”了 。你要做的就是把"\\u4e59\\u70ef";柴分道byte数组里,这你应该知道怎么做了吧
soaringbird 2007-11-30
  • 打赏
  • 举报
回复
string A = "\\u4e59\\u70ef";
-----------------------
这里字符串其实就是\u4e59\u70ef


Console.WriteLine(A); //输出:\u4e59\u70ef
string B = A.Replace(@"\\", @"\");
------------------------------------
这一句其实什么都没替换,因为A里根本没有\\


Console.WriteLine(B); //输出:\u4e59\u70ef

你要把\u4e59\u70ef输出成“乙烯”,恐怕只靠转义是不行的,你看看Converter、Encoding下有什么方法,我觉得出路应该在这里,或者你把\u4e59\u70ef先转换成相应的byte数组,再进行其他转换。
Lixin19821010 2007-11-29
  • 打赏
  • 举报
回复
十分感谢大家的帮助:)
尤其是LALAC的方法,简单,明了.十分感谢
lalac 2007-11-29
  • 打赏
  • 举报
回复

static void Main(string[] args)
{
string A = "\\u4e59\\u70ef";
Console.WriteLine(A);

string B = A.Replace(@"\\", @"\");
Console.WriteLine(B);

string R =string.Empty;
string[] splits = A.Split(new string[] { "\\u" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string var in splits)
{
if (var != "\\u")
{
R += char.ConvertFromUtf32(int.Parse(var, System.Globalization.NumberStyles.HexNumber));
}
}
Console.WriteLine(R);
Console.ReadLine();
}
wang_minm 2007-11-29
  • 打赏
  • 举报
回复
学习好啊
bwt009 2007-11-29
  • 打赏
  • 举报
回复
学习
  • 打赏
  • 举报
回复
但是后来发现,要得到乙烯,用System.Text.Encoding.Unicode,进行编码,需要的参数是4e5970ef.总是,十分感谢大家的帮助
onlinesws 2007-11-29
  • 打赏
  • 举报
回复
干活要提高效率阿
  • 打赏
  • 举报
回复
也许2003,2008是OK的,只是我用的是2005,是不行的.Insert(),Replace(),SubString(),Remove(),我测试了N次,都没成功,我想也应该是不行的吧.
我的方法测试是OK的,得到结果如下:
8
\u4e59\u70ef
乙烯
4e5970ef
乙烯

我要的就是乙烯这个结果,而想得到这个结果,字符串则是"\u4e59\u70ef
"
,而我从数据源里读数据,只能读到"\\u4e59\\u70ef"
soaringbird 2007-11-29
  • 打赏
  • 举报
回复
你的main的输出结果都是什么?贴出来看看,我手头没有vs,不能调试
加载更多回复(18)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧