你的位置:首页 > ASP.net教程

[ASP.net教程].net 读取Excel内容时空格变问号怪问题


今天编码时遇到了一个问题,大致描述就是去读取excel中的某列,如图:

这些是文件名,类似一个对应关系表,然后代码去查找对应的文件。

断点调试出来的内容也是正常,但是都匹配不到(文件真实存在),在打出log时发现了端倪:

有些空格变成了问号。难道是我的打开方式不对么。。。?

尝试了几种不同编码打开,问题依然存在,个人感觉因为这个文件写入时就已经含有了这个特殊字符。只不过显示时候还是空格。

既然打开方式不影响的话,那么是否可以把问号替换成空格。直接写Replace(?, " ") 这样是不起作用的。所以还是需要先转码。

最终解决方案为:

byte[] space = new byte[] { 0xc2, 0xa0 };
string UTFSpace = Encoding.GetEncoding("UTF-8").GetString(space);
name = name.Replace(UTFSpace, " ");

 

问题参考:http://blog.csdn.net/wuhongyao3/article/details/5834921