我做了一个实验,希望将一个“课程表.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时报“路径中具有非法字符”,这是什么原因
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时报“路径中具有非法字符”,这是什么原因
解决方案 »
- select改变以后id="ywm" 为什么获取不到值呢
- 页面出现 word样式
- “Bestcomy.Web.Controls.Upload”控件的这种用法???
- 文章摘要,实时截取显示。
- 我的网站想实现将页面自动转向ip所在城市的功能,请问如何实现
- 模板列传两个参数 代码对吗?请指教
- 急!!怎样获得DataGrid的HyperLinkColumn的DataNavigateUrlField属性然后写入DataView的RowFilter语句中??
- 请教一小问题
- 为什么表单在提交成功后没有自动清除。
- 简单的运行失败,请各位赐教!
- 插入语句中时间数据的问题
- Microsoft VBScript 运行时错误 (0x800A000D)
string UTF8string = System.Text.Encoding.UTF8.GetString(sourcebytes);
编码和解码的字符编码要保持一致。另外:file.Extension就是文件扩展名。
或者string[] names = file.Name.Split('.');
names[0]:文件名
names[1]:扩展名
这样比截取要好一点,万一扩展名不是3位呢?
byte[] buffer = Encoding.GetEncoding("gb2312").GetBytes(testStr);
buffer = Encoding.Convert(Encoding.GetEncoding("gb2312"), Encoding.UTF8, buffer);
Console.WriteLine(Encoding.UTF8.GetString(buffer));
转换编码使用Encoding.Convert();
如楼上所说,一般是不用转换的。
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;to:haukwong
考虑到时客户用,一般上传的都是三位后缀的文件,况且用split文件名中可能依然存在这个分隔字符
我这文件名是动态的
动态命名是为了防止重名还是?可以考虑用时间戳来命名,这样全是数字也不存在编码的问题如果提交到后台,中文都是乱码,可以考虑前台提交之前用js编码,然后后台收到后解码如果后台收到是中文没有乱码,存入数据库中,中文乱码,有可能是数据库的编码问题另外建议断点查看strUploadPath 路径中是否有非法字符