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個半點呀,頭都大了

輸入圖片說明

相關文章
相關標籤/搜索