关于string的编码问题....

kirc 2006-04-16 09:50:38
1 .NET中的string在内存中存储时使用的是什么编码?utf8还是unicode?
2 是否有可能在一个string中保存指定编码的字符串?比如保存gb2312编码的字符串.??

也可参见我的另一个实际的问题.
http://community.csdn.net/Expert/topic/4687/4687886.xml?temp=.783642

...全文
692 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
低调的小青蛙 2006-04-18
  • 打赏
  • 举报
回复
这么多大侠重重地纠正了搂主的概念,希望搂主不要坚持自己的误解。

搂主之所以有这个迷惑的问题,是因为搂主在 "概念" 上有误解。
http://www.regexlab.com/zh/encoding.htm
kirc 2006-04-18
  • 打赏
  • 举报
回复
其实没有误解.我知道编码只针对bytes不针对string

我只是看到java中有这样的定义才问的.
new String(fileName.getBytes("gb2312"), "ISO8859-1")

jimh 2006-04-18
  • 打赏
  • 举报
回复
我希望在一个string变量里保存gb2312编码的字符串.这通过常规的方法是不行的.
---这是不可能的,string有自己的格式,你只能转换成你需要的byte[]
Ivony 2006-04-18
  • 打赏
  • 举报
回复
1、在内存中是按照Unicode的编码格式储存的。
2、字符串编码对于字符串没有任何意义,字符串没有编码。就像日期显示格式对于DateTime型的数据没有任何意义一样,string就是储存字符串的,并不保存任何与字符串无关的东西,例如字符串编码。
kirc 2006-04-18
  • 打赏
  • 举报
回复
可能我没有问清楚.
1楼和viena的回答没有弄清楚我的问题.

我希望在一个string变量里保存gb2312编码的字符串.这通过常规的方法是不行的.

我找到的方法很bt
string s = "这是个测试";
byte[] gb2312bytes = System.Text.Encoding.Default.GetBytes(s);
string sInGb = System.Text.Encoding.Unicode.GetString(gb2312bytes);

不过这还解决不了我的实际问题.见原来的贴子.

ASP.NET 中的Response.AppendHeader(string, string)方法只能传递string 类型的参数.而且我不知道什么时候这个字符串被UTF-8又编码了一遍.
别跟我说改Web.config的配置.我试过了.
viena 2006-04-17
  • 打赏
  • 举报
回复
是啊,string只是一个容器,你在里面放什么是你自己的事情~
低调的小青蛙 2006-04-17
  • 打赏
  • 举报
回复
1. UNICODE
2. 不可以转换

解释:
在 .NET 中,string 是抽象的 '字符' 构成的串,而并不是 C 语言中 char[]

因此,当你要把 string 转化成 byte[] 时,你可以使用你需要的编码,但对于 string 来说,不要去讨论它的编码。

详情请参见:
http://www.regexlab.com/zh/encoding.htm
huangguangdou 2006-04-17
  • 打赏
  • 举报
回复
1 unicode
2 不知道

Knight94 2006-04-17
  • 打赏
  • 举报
回复
设置web.config文件,把其中所有utf8都改成gb2312即可
Knight94 2006-04-17
  • 打赏
  • 举报
回复
设置以下webconfig,把utf8改成gb2312即可
runrunrun 2006-04-16
  • 打赏
  • 举报
回复
1. 不需要知道。string里存储是抽象意义上的字符串,与用什么编码无关。

2. 不可以。 string里只有一种编码。 但是string可是和byte[] 互相转换。 根据不同的 Encoding 类转换的结果也不一样
webwait 2006-04-16
  • 打赏
  • 举报
回复
同上
aSalt 2006-04-16
  • 打赏
  • 举报
回复
同上
copico 2006-04-16
  • 打赏
  • 举报
回复
问题1:unicode
问题2:可以转换
用System.Text.UnicodeEncoding.Convert()
主要方法都晨System.Text里,可以查看MSDN

110,533

社区成员

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

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

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