美文网首页
读取EXCEL内容空格或连字符变成问号

读取EXCEL内容空格或连字符变成问号

作者: jerrylearner | 来源:发表于2018-11-20 09:47 被阅读0次

该问题之前已被其他兄弟发现并解决过,具体可参考这两篇文章

1.空格变成问号的怪问题--了解问题是如何产生的https://blog.csdn.net/wuhongyao3/article/details/5834921

2.该问题在读取EXCEL内容这个场景中的处理
https://www.cnblogs.com/ColdHan/p/5733501.html

今天我要写的是基于这两篇文章的一点延伸,两篇文章都只提到空格变成问号这种情况,我发现还有连字符也会变成问号的情况,或许还有其他特别字符也会变成问号的情况,我们要把源头的罪魁祸首找出来,引用前文的代码

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

解决这个问题只需要把0xc2,0xa0这两个字节转成字符串,然后在原字符串中把它替换为空格。

那这个0xc2,0xa0又是怎么来的呢?

其实也很简单,只需要把原字符串转成UTF-8的字节码,然后在字节码中找出来就行了,示例如下

byte[] bytes = Encoding.GetEncoding("UTF-8").GetBytes(name);

如原字符串为"Lin‑Lin",转成字节码是"0x4C,0x69,0x6E,0xE2,0x80,0x91,0x4C,0x69,0x6E",通过对比找出这个连字符的字节码为"0xE2,0x80,0x91",然后再用同样的方法替换为正常的连字符

byte[] lian = new byte[] { 0xe2, 0x80,0x91 };
string UTFLian = Encoding.GetEncoding("UTF-8").GetString(lian);
s = s.Replace(UTFLian, "-");

如果还发现其他特殊字符,也可以通过这种方式找出来了

相关文章

  • 读取EXCEL内容空格或连字符变成问号

    该问题之前已被其他兄弟发现并解决过,具体可参考这两篇文章 1.空格变成问号的怪问题--了解问题是如何产生的http...

  • 文件的操作

    文件的输出操作 读取文件中的数据 如何读取空格和空格后面的字符 用getline()函数 读取 写入

  • R数据读写

    csv文件读写 txt文件读写 读取excel文件 转成csv文件读取(逗号分隔) 专程prn文件读取(空格分隔)...

  • C++|文件读取输出

    读取文本 添加行数并输出 1、逐行读入 2、字符输入 忽略空格回车 字符读入 包含空格回车

  • 『 Hadoop』编程之旅二

    MapReduce程序——WordsCount 详解 程序功能:读取文件内容,按照空格或制表符对内容进行切分。并对...

  • 通配符及其含义

    *(星号):匹配0个或多个任意字符 ?(问号):匹配单个字符 [](方括号):匹配一组单个字符或用连字符分隔的一定...

  • nextLine()和next()、nextInt()等类型的区

    nextLine()只以Enter键作为结束,即可以读取有效字符和无效字符(Tab、空格)。next()只能读取有...

  • hutool ExcelUtil导出excel、读取excel内

    导出 导出到固定磁盘位置 以response流的方式输出 读取excel内容 读取excel内容的其他read方法...

  • 5.6 数据驱动测试

    准备测试数据 excel读取工具,读取excel内的内容 pytest框架实现数据驱动

  • 第7章 C控制语句:分支和跳转 题1

    题:编写一个程序。该程序读取输入直到遇到#字符,然后报告读取的空格数码、读取的换行符数目以及读取的所有其他字符数目。答:

网友评论

      本文标题:读取EXCEL内容空格或连字符变成问号

      本文链接:https://www.haomeiwen.com/subject/mxltqqtx.html