首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 【50分】一个很让人汗颜的初级问题,同志们帮忙 [已结贴,结贴人:cnwhitewolf]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 01:33:36 楼主
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00";

    如何把str 转换为 "\u5f00\u53d1\u8bed\u8a00";

    由于反斜杠是转义字符,汗颜,不知道如何操作

    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 01:47:431楼 得分:0
    查找所有的\\替换为\
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 02:22:432楼 得分:0
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00";

    string strNew = str.Replace(@"\\", @"\");
    Response.Write(strNew);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 02:45:093楼 得分:0
    引用 2 楼 namhyuk 的回复:
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00"; 

    string strNew = str.Replace(@"\\", @"\");
    Response.Write(strNew);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • net0003
    • 等级:
    发表于:2008-05-27 08:06:434楼 得分:0
    引用 2 楼 namhyuk 的回复:
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00"; 

    string strNew = str.Replace(@"\\", @"\");
    Response.Write(strNew);


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 08:07:085楼 得分:0
    @
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 08:20:486楼 得分:0
    引用 2 楼 namhyuk 的回复:
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00"; 

    string strNew = str.Replace(@"\\", @"\");
    Response.Write(strNew);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yagebu1983
    • 等级:
    发表于:2008-05-27 08:27:117楼 得分:0
    用string的替换函数Replace()。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 08:29:398楼 得分:0
    string str = @"\\u5f00\\u53d1\\u8bed\\u8a00";
    这样的话,字符就不存在转义字符了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • prewin
    • 等级:
    发表于:2008-05-27 08:30:569楼 得分:0
    都说的麻烦了,其实LZ意思用一个@就满足了
    string str = @"\u5f00\u53d1\u8bed\u8a00";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 08:33:5710楼 得分:0
    引用 9 楼 prewin 的回复:
    都说的麻烦了,其实LZ意思用一个@就满足了
    string str = @"\u5f00\u53d1\u8bed\u8a00";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 08:35:1811楼 得分:0
    引用 9 楼 prewin 的回复:
    都说的麻烦了,其实LZ意思用一个@就满足了
    string str = @"\u5f00\u53d1\u8bed\u8a00";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 08:36:5812楼 得分:0
    来晚了。。。

    同意2楼。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 08:39:1013楼 得分:0
    引用 9 楼 prewin 的回复:
    都说的麻烦了,其实LZ意思用一个@就满足了
    string str = @"\u5f00\u53d1\u8bed\u8a00";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 08:43:0114楼 得分:0
    引用 2 楼 namhyuk 的回复:
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00"; 

    string strNew = str.Replace(@"\\", @"\");
    Response.Write(strNew);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 09:05:2215楼 得分:0
    引用 8 楼 clusion 的回复:
    string str = @"\\u5f00\\u53d1\\u8bed\\u8a00"; 
    这样的话,字符就不存在转义字符了
    对头~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 09:23:0016楼 得分:0
    C# code
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00"; 等价于 string str = @"\\u5f00\\u53d1\\u8bed\\u8a00"; string str = "\u5f00\u53d1\u8bed\u8a00"; 错误!!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 09:41:4917楼 得分:0
    嗯。

    string str = @"\\u5f00\\u53d1\\u8bed\\u8a00"; 
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 10:04:1218楼 得分:0
    理解有问题,大家应该都没有试过,你用Replace(@"\\",@"\")是错误的,因为本身是个UNICODE编码,\\本身就代表了\
    继续顶一下

    请注意:"\\u5f00\\u53d1\\u8bed\\u8a00" 本身就等于@"\u5f00\u53d1\u8bed\u8a00";
    但是我需要的是"\u5f00\u53d1\u8bed\u8a00"形式的UNICODE编码
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 10:05:1619楼 得分:0
    引用 16 楼 Dennis_maomao 的回复:
    C# codestringstr="\\u5f00\\u53d1\\u8bed\\u8a00";
    等价于stringstr=@"\\u5f00\\u53d1\\u8bed\\u8a00";stringstr="\u5f00\u53d1\u8bed\u8a00"; 错误!!!!


    Dennis_maomao 理解有问题,第二个是UNICODE编码的形式
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 10:19:4620楼 得分:0
    我猜LZ是要实现这个目的吧:(至于怎么实现,正在考虑中)
    C# code
    using System; class Test { static void Main() { string str = "\\u5f00\\u53d1\\u8bed\\u8a00"; string str1 = Convert(str); Console.WriteLine("[{0}] -> [{1}]", str, str1); } static string Convert(string s) { return "\u5f00\u53d1\u8bed\u8a00"; } } /* 程序输出: [\u5f00\u53d1\u8bed\u8a00] -> [开发语言] */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 10:26:3521楼 得分:0
    引用 20 楼 wuyi8808 的回复:
    我猜LZ是要实现这个目的吧:(至于怎么实现,正在考虑中)

    C# codeusing System;

    class Test
    {
      static void Main()
      {
        string str  = "\\u5f00\\u53d1\\u8bed\\u8a00";
        string str1 = Convert(str);
        Console.WriteLine("[{0}] -> [{1}]", str, str1);
      }
     
      static string Convert(string s)
      {
        return "\u5f00\u53d1\u8bed\u8a00";
      }
    }
    /* 程序输出:
    [\u5f00\u53d1\u8bed\u8a0…
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 10:45:4222楼 得分:0
    我顶啊!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 10:56:4023楼 得分:0
    str=@"\a\b\b"
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 10:57:3124楼 得分:0
    引用 9 楼 prewin 的回复:
    都说的麻烦了,其实LZ意思用一个@就满足了
    string str = @"\u5f00\u53d1\u8bed\u8a00";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 10:58:1425楼 得分:0
    str.Replace("\\\\","\\"); 用这个试试
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 11:01:5326楼 得分:50
    C# code
    using System; using System.CodeDom.Compiler; using Microsoft.CSharp; using System.Reflection; class Test { static void Main() { string str = @"\u5f00\u53d1\r\n\""换行\""\x8bed\u8a00"; string str1 = Convert(str); Console.WriteLine("[{0}] -> [{1}]", str, str1); } static string Convert(string s) { return (new MyString(s)).Parse(); } } sealed class MyString { object instance; MethodInfo method; public MyString(string expression) { string className = "MyString"; string methodName = "Parse"; string code = string.Format("using System;sealed class {0}{{public string {1}(){{return \"{2}\";}}}}", className, methodName, expression); CompilerParameters p = new CompilerParameters(); p.GenerateInMemory = true; CompilerResults cr = new CSharpCodeProvider().CompileAssemblyFromSource(p, code); if(cr.Errors.Count > 0) { string msg = "MyString(\"" + expression + "\"): \n"; foreach (CompilerError err in cr.Errors) msg += err.ToString() + "\n"; throw new Exception(msg); } instance = cr.CompiledAssembly.CreateInstance(className); method = instance.GetType().GetMethod(methodName); } public string Parse() { return (string)method.Invoke(instance, null); } } /* 程序输出: [\u5f00\u53d1\r\n\"换行\"\x8bed\u8a00] -> [开发 "换行"语言] */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 11:04:2127楼 得分:0
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00"; 

    string strNew = str.Replace(@"\\", @"\");
    Response.Write(strNew);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 11:06:2728楼 得分:0
    string str = "\\u5f00\\u53d1\\u8bed\\u8a00";
                string str1=str.Replace("\\",@"\");
                Console.WriteLine(str1);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 11:13:2729楼 得分:0
    C# code
    using System; using System.CodeDom.Compiler; using Microsoft.CSharp; using System.Reflection; class Test { static void Main() { string s = @"\x41 B C \u5f00\u53d1\r\n\""换行\""\x8bed\u8a00aa"; string str1 = Convert(s); Console.WriteLine("[{0}] -> [{1}]", s, str1); } static string Convert(string s) { return (new MyString(s)).Parse(); } } sealed class MyString { object instance; MethodInfo method; public MyString(string s) { string code = string.Format("sealed class MyString{{public string Parse(){{return \"{0}\";}}}}", s); CompilerParameters p = new CompilerParameters(); p.GenerateInMemory = true; CompilerResults cr = new CSharpCodeProvider().CompileAssemblyFromSource(p, code); instance = cr.CompiledAssembly.CreateInstance("MyString"); method = instance.GetType().GetMethod("Parse"); } public string Parse() { return (string)method.Invoke(instance, null); } } /* 程序输出: [\x41 B C \u5f00\u53d1\r\n\"换行\"\x8bed\u8a00aa] -> [A B C 开发 "换行"语言aa] */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-27 11:17:4030楼 得分:0
    \\还用转吗?它自己必须这样啊,自己就转了\是转义符号啊等于是说


    @"x:\a\b\c" = "x:\\a\\b\\c";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Jinglecat
    • 等级:
    发表于:2008-05-27 11:23:5731楼 得分:0
    看不懂,明明就是需要 \\
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    <