110,502
社区成员
发帖
与我相关
我的任务
分享
private void testOutputFile()
{
FileStream fs = new FileStream(@"D:\Exp\test.txt", FileMode.Create);
StringBuilder sb = new StringBuilder();
sb.Append(@"T1CL070TCL07014100002- 2014121520141215CB20141215-11 寶虹科技 測試1
T300010100-20018 00000002.000020141215000001");
//byte[] data = new UTF8Encoding().GetBytes(sb.ToString());//此方法输出的繁体中文正常显示,但是UTF-8格式的文件,用户要求输出ANSI格式的中文
byte[] data = Encoding.UTF8.GetBytes(sb.ToString());//此方法输出的繁体中文正常显示,但是UTF-8格式的文件,用户要求输出ANSI格式的中文
//byte[] data = new System.Text.ASCIIEncoding().GetBytes(sb.ToString());//不能显示中文
//byte[] data = Encoding.GetEncoding("big5").GetBytes(sb.ToString());//中文显示乱码
//byte[] data = Encoding.GetEncoding(950).GetBytes(sb.ToString());//中文显示乱码
//開始寫入
fs.Write(data, 0, data.Length);
//清空緩存區
fs.Flush();
fs.Close();
}
Encoding.GetEncoding("big5").GetBytes()应该是对的 1、
//byte[] data = Encoding.GetEncoding(950).GetBytes(sb.ToString());//中文显示乱码 2、
StreamWriter mFileName = new StreamWriter(@"D:\test.txt", true, Encoding.Default); 3、
mFileName.WriteLine(@"T1CL070TCL07014100002- 2014121520141215CB20141215-11 寶虹科技 測試1
T300010100-20018 00000002.000020141215000001");
mFileName.Flush();
mFileName.Close();
把本机设置为繁体,这3种方式都试了,都可以显示,给台湾的用户测试,她竟然说那里显示为简体中文的!她的system locale也是繁体的。
难道是从oracle数据库取数据的时候被oracle客户端转换了?oracle客户端设置不对?
但是 UTF-8格式的能正常显示啊……
//byte[] data = new UTF8Encoding().GetBytes(sb.ToString());//此方法输出的繁体中文正常显示,但是UTF-8格式的文件,用户要求输出ANSI格式的中文 StreamWriter mFileName = new StreamWriter(@"D:\test.txt", true, Encoding.Default);
mFileName.WriteLine(@"T1CL070TCL07014100002- 2014121520141215CB20141215-11 寶虹科技 測試1
T300010100-20018 00000002.000020141215000001");
mFileName.Flush();
mFileName.Close();
试试看