1 .NET中的string在内存中存储时使用的是什么编码?utf8还是unicode?
2 是否有可能在一个string中保存指定编码的字符串?比如保存gb2312编码的字符串.??也可参见我的另一个实际的问题.
http://community.csdn.net/Expert/topic/4687/4687886.xml?temp=.783642
2 是否有可能在一个string中保存指定编码的字符串?比如保存gb2312编码的字符串.??也可参见我的另一个实际的问题.
http://community.csdn.net/Expert/topic/4687/4687886.xml?temp=.783642
问题2:可以转换
用System.Text.UnicodeEncoding.Convert()
主要方法都晨System.Text里,可以查看MSDN
2. 不可以转换解释:
在 .NET 中,string 是抽象的 '字符' 构成的串,而并不是 C 语言中 char[]因此,当你要把 string 转化成 byte[] 时,你可以使用你需要的编码,但对于 string 来说,不要去讨论它的编码。详情请参见:
http://www.regexlab.com/zh/encoding.htm
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的配置.我试过了.
2、字符串编码对于字符串没有任何意义,字符串没有编码。就像日期显示格式对于DateTime型的数据没有任何意义一样,string就是储存字符串的,并不保存任何与字符串无关的东西,例如字符串编码。
---这是不可能的,string有自己的格式,你只能转换成你需要的byte[]
http://www.regexlab.com/zh/encoding.htm
new String(fileName.getBytes("gb2312"), "ISO8859-1")