如何将C#中的string(Unicode) 转换为 AnsiString(ascii)

风车呼噜噜 2012-03-15 12:44:07

如题,string 类型默认是Unicode编码,如何转换为ASCII编码的字符串?请高手支招。谢谢
...全文
1248 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yapon 2012-04-16
  • 打赏
  • 举报
回复
顶楼主,也提相关问题:
如何在C#中将AnsiString的字符串转换为Unicode字符串,其内容意义不变.
比如:AnsiString:"楼主",转换为Unicode显示仍是"楼主",而非乱码
风车呼噜噜 2012-03-15
  • 打赏
  • 举报
回复
或者,能直接定义也行
风车呼噜噜 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gomoku 的回复:]

如果是Com,一般都会遵守一定的规范,很多情况下C#只要添加Com引用就可以了。
Com传递字符串绝大部分用BStr,而不是AnsiString等等。
[/Quote]
关键是现在在C#中返回的字符串是乱码,怎样处理一下啊?
gomoku 2012-03-15
  • 打赏
  • 举报
回复
如果是Com,一般都会遵守一定的规范,很多情况下C#只要添加Com引用就可以了。
Com传递字符串绝大部分用BStr,而不是AnsiString等等。
风车呼噜噜 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gomoku 的回复:]

1、AnsiString不是ASCII string。ASCII是一种单字节编码,而AnsiString是一种多字节编码,某些编码甚至可以表示中文。
2、如果要调用Delphi dll,则是告诉CLR如何封送字符串,比如
[DllImport("...", CharSet=CharSet.Ansi)]
extern static void SayHello(string text);
[/Quote]
总算有点相关的,我要调Delphi的Com, delphi 中的函数都是string类型的,返回也是string类型的,可是到了C#中就乱了套了。
gomoku 2012-03-15
  • 打赏
  • 举报
回复
1、AnsiString不是ASCII string。ASCII是一种单字节编码,而AnsiString是一种多字节编码,某些编码甚至可以表示中文。
2、如果要调用Delphi dll,则是告诉CLR如何封送字符串,比如
[DllImport("...", CharSet=CharSet.Ansi)]
extern static void SayHello(string text);
EnForGrass 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhnglicho 的回复:]

或者,能直接定义也行
[/Quote]
不知道是不是你要的

string unicodestring = "1234";
byte[] byteunicode = Encoding.Unicode.GetBytes(unicodestring);
string ASCIIstring = Encoding.ASCII.GetString(byteunicode);

你最好给个样本数据
bdmh 2012-03-15
  • 打赏
  • 举报
回复
Encoding.ASCII ?

110,568

社区成员

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

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

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