步步为营-92-空格变成问号的怪问题
参考博客http://blog.csdn.net/wuhongyao3/article/details/5834921
问题描述:从百度文档或者别的地方赋值一段文字后,通过生成html保存到数据库,发现在换行的地方会出现一些?
问题的根源,在于UTF-8这种编码里面,存在一个特殊的字符,其编码是“0xC2 0xA0”,转换成字符的时候,表现为一个空格,跟一般的半角空格(ASCII 0x20)一样,唯一的不同是它的宽度不会被压缩,因此比较多的被用于网页排版(如首行缩进之类)。
解决方法:在得到UTF-8字符串之后,先进行一个替换,把这个特殊的空格替换为普通的空格,如果是HTML串,建议替换为( )
byte[] space = new byte[]{0xc2,0xa0}; string UTFSpace = Encoding.GetEncoding("UTF-8").GetString(space); HtmlStr = HtmlStr.Replace(UTFSpace," "); |