最近在项目中操作Excel,用 HtmlDecode()去解码数据后,“ ”不是被解码为半角的空格(ASCII码0x20)而是变成半角问号“?”(ASCII码0x3F)。而且奇怪的是,只有每行前面的空格才会出问题,如果前面后面有汉字的话,空格就还是空格。但是更加奇怪的是,如果直接在HtmlDecode()的后面直接加上trim()的话,这个问号会被去掉。而正常的情况下,问号是不会被去掉的,只有空格才会被去掉。
发生这个问题的时候,我是在把解码后的内容写入数据库,因此一直都以为是SqlServer与应用程序之间的字符集问题或者编码方式问题。调试了多次,最后才发现在送进SqlServer之前,内容就已经是问号了。 查了很久,也找不到这个问题如何解决。因此,只能使用山寨解决方法了:
1、在Decode之前替换 为空格。
2、在Decode之后直接加 Trim()。
显而易见的,这个不是一个好办法:在显示到浏览器的时候,空格就不见了。 最近认