divd茹吧 关注:913贴子:6,670
  • 1回复贴,共1

【学习】长文件名附件下载文件名截断问题

只看楼主收藏回复

原因:
1个汉字被转换为utf-8就等于9个英文字 而Header好像最多只能155个英文字 所以中文文件名超过17字就会被截断。
解决办法:把utf8转化为gb2312
源码样例:
/// <summary>
/// 从一种编码到另一种编码
/// </summary>
/// <param name="str">源字符串</param>
/// <param name="From">From</param>
/// <param name="To">To</param>
/// <returns></returns>
private string ConertStr(string str, string From, string To)
{
byte[] bs = System.Text.Encoding.GetEncoding(From).GetBytes(str);
bs = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(From), System.Text.Encoding.GetEncoding(To), bs);
string res = System.Text.Encoding.GetEncoding(To).GetString(bs);
return res;
}
//调用
string a = ConertStr("中国人" ,"utf-8", "gb2312");


1楼2013-12-25 11:15回复
    .sjwjtz_content ul li img {
    display: inline;
    float: none;
    height: 14px;
    margin-top: 7px;
    width: 28px;
    margin-left:5px;
    }


    2楼2014-01-08 09:41
    回复