首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

System.Text.Encoding.UTF8.GetString无法转换汉字的有关问题,简单

2013-01-09 
System.Text.Encoding.UTF8.GetString无法转换汉字的问题,简单我做了一个实验,希望将一个“课程表.rar”进行

System.Text.Encoding.UTF8.GetString无法转换汉字的问题,简单
我做了一个实验,希望将一个“课程表.rar”进行编码,使用下面的形式

  string filename=file.FileName.Substring(0,file.FileName.Length-3);
            string fileext=file.FileName.Substring(file.FileName.Length-3,3);
            byte[] sourcebytes = System.Text.Encoding.GetEncoding("gb2312").GetBytes(filename);

           
            string UTF8string = System.Text.Encoding.UTF8.GetString(sourcebytes);
            string finalFileName = UTF8string + fileext;

            file.SaveAs(strUploadPath + finalFileName);
显示finalFileName结果是“课程??”,一次执行到file.saveas时报“路径中具有非法字符”,这是什么原因
[解决办法]
文件名不用转换的,.Net的字符串默认就是用的utf-8编码
[解决办法]
            string testStr = "ABC";
            byte[] buffer = Encoding.GetEncoding("gb2312").GetBytes(testStr);
            buffer = Encoding.Convert(Encoding.GetEncoding("gb2312"), Encoding.UTF8, buffer);
            Console.WriteLine(Encoding.UTF8.GetString(buffer));
转换编码使用Encoding.Convert();
如楼上所说,一般是不用转换的。
[解决办法]

引用:
to:xiangmei521 
我这文件名是动态的


动态命名是为了防止重名还是?可以考虑用时间戳来命名,这样全是数字也不存在编码的问题

如果提交到后台,中文都是乱码,可以考虑前台提交之前用js编码,然后后台收到后解码

如果后台收到是中文没有乱码,存入数据库中,中文乱码,有可能是数据库的编码问题

另外建议断点查看strUploadPath 路径中是否有非法字符

热点排行