BOM格式形成的\uFEFF引起的悲剧

个人目的是要把汉字转换为拼音java

我把要转换为拼音的字符用记事本以UTF-8的编码形式保存编码

输入图片说明

而后以文件的形式用java去读debug

输入图片说明

而后咱们看看结果吧指针

输入图片说明

为何??个人拼音怎么没有转换出来,并且还报错了,更可恶的仍是空指针错,没道理呀,值不是传上去了吗code

好吧,给个人第一个感受就是个人字符串可能出现空格字符啥的,而后我就去去空格图片

String str=strArray[0];
     str.trim();

不行没有成功,仍是报错,难道是去空格的方法有问题??又换一种!字符串

String str=strArray[0];
     System.out.println(str.replaceAll("\\s*", ""));

这时候我有点郁闷了,怎么仍是不行,我就想多是个人编码有问题吧,再接受的时候再转一次编码吧get

String str=strArray[0].trim();
  String   newstr = new String(str.getBytes(),"UTF-8");

这会有点难受了,我就想多是转拼音的方法写错了吧,我再试一下个人拼音方法it

public  void hbaseTest(){
      System.out.println(ToPinyin("马克"));
    }

输入图片说明

没问题呀,方法没错呀,到底错在哪儿了呢,好吧,只能用debug模式追踪一下了百度

输入图片说明

这会有点惊呆了,怎么多了一个逗号,\uFEFF 是啥玩意,让后就百度吧,还好,度一下就出来了,就是他妈BOM头惹得祸

而后我把个人文件用notepad++打开,以UTF-8无BOM格式编码保存

输入图片说明

再次运行吧,好使了,可怜我折腾了将近2个半点呀,头都大了

输入图片说明

相关文章
相关标签/搜索