| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3792 人关注过本帖
标题:[求助]为什么用StreamWriter写文件后是乱码
取消只看楼主 加入收藏
zzw5980_cn
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-24
收藏
 问题点数:0 回复次数:5 
[求助]为什么用StreamWriter写文件后是乱码

日文操作系统,在写文件之前对写入的内容进行过文字码转换。debug时,写之前的值还跟原来的一样,但是写道文件之后,打开文件就是乱码。不知道为什么,请教大家!谢谢!
下面是我的代码:
private const string path = "c:\aa.txt";
private void append(string m_str,string code)
{
System.Text.Encoding enc;
if(code.ToLower() == C_SHIFT_JIS)
{
enc = System.Text.Encoding.GetEncoding("shift_jis");
}
else if (code.ToLower() == C_UTF_8)
{
enc = System.Text.Encoding.GetEncoding("utf-8");
}
else
{
enc = System.Text.Encoding.GetEncoding(C_UNICODE);
}

string change_str;
change_str = enc.GetString(System.Text.Encoding.Default.GetBytes(m_str));

try
{
StreamWriter sw = File.AppendText(path);
sw.WriteLine(change_str);
sw.Flush();
sw.Close();
}
catch(System.Exception e)
{
Console.WriteLine(e.Message);
}
}

搜索更多相关主题的帖子: StreamWriter 乱码 文件 
2006-07-26 08:54
zzw5980_cn
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-24
收藏
得分:0 
乱码解决了,不知文字码是不是按自己定义的

我把它改成这样了,好用了。
private const string path = "c:\aa.txt"
private void append(string m_str,string code)
{
System.Text.Encoding enc;
if(code.ToLower() == C_SHIFT_JIS)
{
enc = System.Text.Encoding.GetEncoding("shift_jis");
}
else if (code.ToLower() == C_UTF_8)
{
enc = System.Text.Encoding.GetEncoding("utf-8");
}
else
{
enc = System.Text.Encoding.GetEncoding(C_UNICODE);
}

string change_str;
byte[] aa;
//change_str = enc.GetString(System.Text.Encoding.Default.GetBytes(m_str));
aa = System.Text.Encoding.Convert(System.Text.Encoding.Default,enc,
System.Text.Encoding.Default.GetBytes(m_str));
change_str = enc.GetString(aa);

try
{

//StreamWriter sw = File.AppendText(path);
StreamWriter sw = new StreamWriter(path,true,System.Text.Encoding.Default);
sw.WriteLine(change_str);
sw.Flush();
sw.Close();
}
catch(System.Exception e)
{
Console.WriteLine(e.Message);
}
}

但是写到文件之后,内容的文字码是不是跟我传进来的code一样??还是跟系统默认的一致呢?

2006-07-26 10:56
zzw5980_cn
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-24
收藏
得分:0 

那有没有可以按照自己定义的文字码写入文件中的方法啊?

2006-07-26 11:11
zzw5980_cn
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-24
收藏
得分:0 

谢谢楼上,System.Text.Encoding里面好像没有shift_jis这种类型?是这样吗?

2006-07-26 12:21
zzw5980_cn
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-24
收藏
得分:0 
谢谢!我试过了,我现在的系统是日文系统,我刚才用utf-8试了,不过写到文件里后,有是乱码了。
不知为什么,是不是写文件时必须用同系统一致的编码??
2006-07-26 12:43
zzw5980_cn
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-24
收藏
得分:0 
非常感谢!
2006-07-26 13:14
快速回复:[求助]为什么用StreamWriter写文件后是乱码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016010 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved