.Net的默认编码方式是什么?

LMTZ 2006-08-29 11:03:28
就是说实例一个string对象,这个字符串在内存中是按照什么编码方式储存的?
是Unicode嘛?如何查看其编码方式?
...全文
2110 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
diffmaker 2006-08-30
  • 打赏
  • 举报
回复
应该与你安装的操作系统有关吧
LMTZ 2006-08-30
  • 打赏
  • 举报
回复
.Net中, sizeof(char)的结果是2,
可以证明,char的编码方式是unicode,
我想string也一定是同样的编码方式。
如果换成其他编码方式,没有任何意义。

各位的看法呢?
LMTZ 2006-08-30
  • 打赏
  • 举报
回复
To 楼上:

从你贴过来的代码中可见,编码方式在进行字符转换时是必须的。
你的方法先是把字符串转成Unicoide, 然后根据Unicode的编码规则计算字节,
这便得出了结果。
那么如果我们知道string在内存中的编码方式,我们就可以忽略
System.Text.Encoding.Unicode.GetBytes(c,i,1);
直接对QJstr.ToCharArray();的返回值进行处理不就可以了吗?

你的代码最后一句:
c[i]=System.Text.Encoding.Unicode.GetChars(b)[0];把Unicode字符传给了 c[i],
string strNew=new string(c);最后又根据Unicode字符实例了一个string.

这个操作让我觉得string中就是unicode编码。

jingtao_zhou 2006-08-30
  • 打赏
  • 举报
回复
当然有用了!
比如你想进行全角半角转换,就需要知道内存中的编码方式,
然后根据该编码方式的规则进行转换
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
字符串在内存里应该是一样的,没什么编码的区别吧
半角"("与全角的"("是不同的字符
网上搜索了一下c#的
半角转全角:

c="hello World".ToCharArray();
for (int i=0;i<c.Length;i++)
{
byte[] b=System.Text.Encoding.Unicode.GetBytes(c,i,1);
if (b.Length= =2)
{
if (b[1]= =0)
{
b[0]=(byte)(b[0]-32);
b[1]=255;
c[i]=System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}

string strNew=new string(c);

全角转半角:

string QJstr = "hello,Amigo quanjiao字符";
char[] c=QJstr.ToCharArray();
for (int i=0;i<c.Length;i++)
{
byte[] b=System.Text.Encoding.Unicode.GetBytes(c,i,1);
if (b.Length= =2)
{
if (b[1]= =255)
{
b[0]=(byte)(b[0]+32);
b[1]=0;
c[i]=System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
string strNew=new string(c);
当然如果只是转换少量的,上面应该没有问题
如果是字符串很大,建议用正则转
fd7893 2006-08-30
  • 打赏
  • 举报
回复
对不起 应该是 UnicodeEncoding.Default.EncodingName

我的是GB2312
andylauhai 2006-08-30
  • 打赏
  • 举报
回复
UTF-8
fd7893 2006-08-30
  • 打赏
  • 举报
回复

用 UnicodeEncoding.Default.ToString() 看一下

LMTZ 2006-08-30
  • 打赏
  • 举报
回复
当然有用了!
比如你想进行全角半角转换,就需要知道内存中的编码方式,
然后根据该编码方式的规则进行转换
Ivony 2006-08-30
  • 打赏
  • 举报
回复
有什么用么?
yjf_1982 2006-08-30
  • 打赏
  • 举报
回复
utf-8
terryghz 2006-08-30
  • 打赏
  • 举报
回复
Unicode!!!char类型可以用Unicode来表示,也可以用4位16进制数表示,而string是一系列Unicode表示的char组成~~~
美福种田伯 2006-08-30
  • 打赏
  • 举报
回复
UTF-8
interboy 2006-08-30
  • 打赏
  • 举报
回复
utf-8吧
renmasheshou 2006-08-30
  • 打赏
  • 举报
回复
UTB-8
冷月孤峰 2006-08-30
  • 打赏
  • 举报
回复
Unicode!
LMTZ 2006-08-30
  • 打赏
  • 举报
回复
To alien54155415() :

System.Text.Encoding.Default 是获取操作系统的默认编码方式,
我想知道的是.Net框架之中string类型在内存中的编码方式。

To laladeng() :
你说的我同意:Java中,string类型好像是Unicode编码,我觉得.Net中也应该是。
这方面的文档或者资料能提供吗?
jack_man_ 2006-08-30
  • 打赏
  • 举报
回复
UTF-8
破碎的脸 2006-08-30
  • 打赏
  • 举报
回复
与系统有关吧。。。。Unicode也不一定D。。。。。因为菜鸟我在做某些东东的时候出现了乱码。。。。。
fattycat 2006-08-30
  • 打赏
  • 举报
回复

mark
www_123du_com 2006-08-30
  • 打赏
  • 举报
回复
http://blog.csdn.net/www_123du_com/archive/2006/08/24/1114266.aspx
加载更多回复(9)

110,533

社区成员

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

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

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