现在我得到一个字符串
如:”=?gbk?Q?=B7=D6=C0=E0=CD=B3=BC=C61.doc?=“
用System.Text.Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(attname));
为什么转化不成字符串呢?该怎么调试啊,谢谢。。
如:”=?gbk?Q?=B7=D6=C0=E0=CD=B3=BC=C61.doc?=“
用System.Text.Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(attname));
为什么转化不成字符串呢?该怎么调试啊,谢谢。。
错误提示为“base-64 字符串中的无效字符”
错误提示为:“base-64 字符串中无效字符”
=?gbk?Q?=B7=D6=C0=E0=CD=B3=BC=C61.doc?=
那你也要知道你这个字符串是什么编码的啊
要不你枚举所有的代码页挨个解
要求:
FormatException
value 的长度(忽略空白字符)不是 0 或 4 的倍数。
- 或 -
value 的格式无效。value 包含一个非 base 64 字符、两个以上的填充字符或者在填充字符中包含非空白字符。
备注
value 由基 64 数字、空白字符和尾随填充字符组成。从零开始以升序排列的以 64 为基的数字为大写字符“A”到“Z”、小写字符“a”到“z”、数字“0”到“9”以及符号“+”和“/”。
空白字符及其 Unicode 名称和十六进制码位为:制表符(CHARACTER TABULATION,U+0009)、换行符(LINE FEED,U+000A)、回车符(CARRIAGE RETURN,U+000D)和空格符(SPACE,U+0020)。value 中可以出现任意数目的空白字符,因为所有空白字符都将被忽略。
无值字符“=”用于尾部的空白。value 的末尾可以包含零个、一个或两个填充字符。
如:”=?gbk?Q?=B7=D6=C0=E0=CD=B3=BC=C61.doc?=“
用System.Text.Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(attname));
就是
attname="=?gbk?Q?=B7=D6=C0=E0=CD=B3=BC=C61.doc?="
System.Text.Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(attname));
错误提示为“base-64 字符串中的无效字符”
该怎么弄?改那里?
所以语句:System.Text.Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(attname)); 在Convert.FromBase64String(attname)的时候就会出错。
楼主想要正解就要先弄清楚attname是以什么编码的字符串。