.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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM