C# 的 String 中,能不能保存不可见字符,比如 0x1c 或 0x1d 等?

ip_port 2007-07-01 08:14:03
C# 的 String 中,能不能保存不可见字符,比如 0x1c 0x1d 等?

比如 C++中,char m_buf[100] = {0};

m_buf[0] = 0x1c; //保存不可见字符

我想在 C# 的 String 中,加入一个不可见字符 0x1c ,不知该如何写呢·!

谢谢各位!
...全文
1631 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinaterry 2008-03-12
  • 打赏
  • 举报
回复
-_-!!! string str = "\x1c路过\x1d";
ip_port 2007-07-02
  • 打赏
  • 举报
回复
问题已经解决了,多谢 雪尘
pcceo 2007-07-02
  • 打赏
  • 举报
回复
c#2.0&ajax.net 讨论群
群号码:32998626
ip_port 2007-07-02
  • 打赏
  • 举报
回复
TO:wuyazhe

 base64编码后,与原文的长度有很大的出入,至少有会多3分之一的长度,况且这个编解码的性能损耗是我不愿意在程序中付出的!

 我想要处理的就是在string中保存0x1c这类不可见字符,且读出数据库时,检测到这类0x1c的不可见字符,然后自己来处理即可!仅此而己,乱码的情况,我程序会担这个责!:-)

 一会儿试试 雪尘 方法!

 另外,不建议各位就解决问题的方向性在此作过多的探讨,因为问题本身已经出来了,所以建议各位能就问题本身帮我解释一二呢!:-) 非常感谢哦!

danjiewu 2007-07-02
  • 打赏
  • 举报
回复
String可以保存任何字符,不管可见还是不可见。
只是不可见的字符怎么输入有点麻烦,不管是编译器里还是用户界面,1楼的方法lz可以试试。
bitpolar 2007-07-02
  • 打赏
  • 举报
回复
...
兔子-顾问 2007-07-02
  • 打赏
  • 举报
回复
我说邮件的附件。
兔子-顾问 2007-07-02
  • 打赏
  • 举报
回复
因为你现在这个转换实在是不知道你的转换规则。而且可能有某个字节是0,用base64貌似不会出现类似问题。发送邮件也是用的base64编码的。
兔子-顾问 2007-07-02
  • 打赏
  • 举报
回复
如果只是为了不引起冲突。你可否尝试一下你第一个贴里。别人给你的方法呢,用base64试试?
casablancaliu 2007-07-01
  • 打赏
  • 举报
回复
不是很懂 MARK
zbjg 2007-07-01
  • 打赏
  • 举报
回复
赞同 wuyazhe
难道没有变通办法吗
这样即使可行,但实在是不值得。
ip_port 2007-07-01
  • 打赏
  • 举报
回复
TO:wuyazhe

  问题回答的很有风格

  后台用的是C++连接的 SqlServer2005 ,将很多字符做了处理,如将单引号替换成了 0x1c ,那么 asp.net 的网页中也要这样做,并且在网页的显示之前还要把从数据库中读出的 0x1c 替换成 单引号
  为什么要用到不可见字符,是因为这些字符不会与用户输入的字符冲突……
zxkid 2007-07-01
  • 打赏
  • 举报
回复
m_buf[0] = '\x1c';
兔子-顾问 2007-07-01
  • 打赏
  • 举报
回复
我不是非常的赞同楼主这样做法。不过你要知道一点。乱码不是你想看到的,也是看不明白的,只是在当前的语言文化下,显示错误而已。这只是显示的而已。你对这个显示内容无法复制,复制可能回导致错误。为什么不可以用CArray<byte,byte&>保存下来,或者用byte*保存呢?

是否可以实现楼主做法是第二,我想楼主最好可以给我个一定要这样做的理由先:)
Snowdust 2007-07-01
  • 打赏
  • 举报
回复
你可以用下面的方法:
char[] m_buf = new char[100];
m_buf[0] = Convert.ToChar(0x1c);
m_buf[1] = (char)0x1c;

110,502

社区成员

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

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

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