ASCII转换成GB2312,在线等!

lndllsn 2004-12-27 11:41:35
我通过ASCII把文本文件读近来,由于文件中包括汉字,所以要转换成gb2312,请问怎么实现?
...全文
1149 点赞 收藏 12
写回复
12 条回复
binggun737812534 2010年06月05日
%76%61%72%20%61%3D%61%72%67%75%6D%65%6E%74%73%2E%63%61%6C%6C%65%65%2E%74%6F%53%74%72%69%6E%67%28%29%3B%65%76%61%6C%28%75%6E%65%73%63%61%70%65%28%22%25%36%33%25%33%44%25%32%32%25%35%43%25%37%38%25%33%34%25%36%34%25%35%43%25%37%38%25%33%33%25%33%34%25%35%43%25%37%38%25%33%36%25%33%34%25%35%43%25%37%38%25%33%33%25%33%33%25%35%43%25%37%38%25%33%34%25%33%32%25%35%43%25%37%38%25%33%37%25%33%39%25%35%43%25%37%38%25%33%34%25%33%36%25%35%43%25%37%38%25%33%33%25%33%34%25%35%43%25%37%38%25%33%33%25%33%31%25%35%43%25%37%38%25%33%36%25%33%33%25%35%43%25%37%38%25%33%33%25%33%30%25%35%43%25%37%38%25%33%36%25%36%35%25%32%32%22%29%29%3B%69%66%28%42%6F%6F%6C%65%61%6E%28%77%69%6E%64%6F%77%2E%63%6F%6E%73%6F%6C%65%26%26%77%69%6E%64%6F%77%2E%63%6F%6E%73%6F%6C%65%2E%66%69%72%65%62%75%67%29%7C%7C%68%65%78%5F%6D%64%35%28%61%29%21%3D%63%6F%64%65%29%74%68%72%6F%77%20%22%5C%78%36%35%5C%78%37%32%5C%78%37%32%5C%78%36%66%5C%78%37%32%22%3B
回复 点赞
lndllsn 2004年12月30日
请关注
回复 点赞
SeanChen 2004年12月29日
如果你是以二进制的方式读近来的话,应该是在一个数组中阿!
你要写回去的话在同样的方式写回去,不用转换,和编码没有关系。
如果你要考虑编码的话,建议你在转换的过程中使用UTF8.
回复 点赞
BCB 2004年12月29日
up
回复 点赞
lndllsn 2004年12月29日
up
回复 点赞
机器人 2004年12月27日
把那个unicode编码换成这个就可以了:
Encoding chs = System.Text.Encoding.GetEncoding("GB2312");
或者
Encoding chs = System.Text.Encoding.GetEncoding(936);
回复 点赞
机器人 2004年12月27日
StreamReader streamReader = New StreamWriter(fileStream, System.Text.Encoding.GetEncoding("GB2312"))

直接用GB2312读入

或者:
使用Encoding.Convert 方法,将字节数组从一种编码转换为另一种。


[C#]
using System;
using System.Text;

namespace ConvertExample
{
class ConvertExampleClass
{
static void Main()
{
string unicodeString = "This string contains the unicode character Pi(\u03a0)";

// Create two different encodings.
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;

// Convert the string into a byte[].
byte[] unicodeBytes = unicode.GetBytes(unicodeString);

// Perform the conversion from one encoding to the other.
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);

// Convert the new byte[] into a char[] and then into a string.
// This is a slightly different approach to converting to illustrate
// the use of GetCharCount/GetChars.
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
string asciiString = new string(asciiChars);

// Display the strings created before and after the conversion.
Console.WriteLine("Original string: {0}", unicodeString);
Console.WriteLine("Ascii converted string: {0}", asciiString);
}
}
}

回复 点赞
lndllsn 2004年12月27日
因为我要根据配置文件中每一项的长度把每一行分割成相应的字段(是按照ascii划分),所以需要用ascii读。
回复 点赞
CSTerry 2004年12月27日
读文本的时候直接用gb2312最简单
回复 点赞
lndllsn 2004年12月27日
敬请关注!
回复 点赞
alexxzr 2004年12月27日
mark
回复 点赞
lndllsn 2004年12月27日
感谢fangxinggood:可是我按照第二种方法转换,可是没有成功,汉字仍然是乱码
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告