一個不是編碼格式的疑似亂碼問題

之前遇到的另一個問題,還是升級11g到12c的時候遇到的。

升級之后下游系統(tǒng)反應收到的郵件文件名是亂碼,看看這個文件名...:

=UTF-8Q252762=5F=E5=B9=BF=E4=B8=9C=

=UTF-8Q=E7=9D=A1=E5=86=AC=E5=AE=9D=E5=AE=B6=E7=94=A8=

=UTF-8Q=E7=BA=BA=E7=BB=87=E5=93=81=E6=9C=89=E9=99=90=

=UTF-8Q=E5=85=AC=E5=8F=B8=5F2018090= =UTF-8Q5=5F=E9=80=80=E8=B4=A7=E.pdf=

(現(xiàn)在看起來 這并不是亂碼)本來覺得這個問題沒什么,大概差不多改一個編碼格式就好了,稍微有點疑惑的是為什么原來的項目沒有問題呢旧困?

之后開始試圖本地還原這個問題,但是本地遇到了另一個問題稼锅,就是新的DB存儲的中文也是亂碼吼具。。矩距。和QA和PP環(huán)境的問題還不吻合拗盒。。锥债。

本地亂碼的原因是之前更換了連接的數(shù)據(jù)庫陡蝇,而檢查數(shù)據(jù)庫的編碼格式不是中文格式,一時還改不了哮肚,所以只能先debug項目登夫,讓在邏輯層的數(shù)據(jù)先是中文的,順利還原出問題允趟。

之后是查看之前的代碼恼策,發(fā)現(xiàn)了疑似問題的所在。出現(xiàn)了以下的代碼:

remoteFileName = (String) parser.evaluate(null, templateContext,new CommonTemplate(new CommonSubTemplate(

"remoteFileName",this.writePattern)));

remoteFileName =new String(remoteFileName.getBytes(“UTF-8”),"UTF-8");

感覺是存在問題的潮剪,因為String是用默認編碼格式的涣楷,所以如果編碼格式不是UTF-8分唾,getsBytes就會出現(xiàn)亂碼。為了驗證我的想法我還編寫了簡單的測試代碼進行驗證狮斗,代碼和結(jié)果如下:



那么解決方式就是用默認編碼格式getBytes應該就沒有問題了绽乔。然后進行本地和QA測試,輸出文件明為“中文文件.pdf”碳褒,果然可以順利輸出了折砸,開開心心上PP。

But but but骤视,下午QA小姐姐跟我說鞍爱,PP環(huán)境測試發(fā)現(xiàn)依舊是亂碼>榫酢Wㄐ铩!

當時真的是很崩潰盗扇,突然找不到方向了祷肯。再重新理清思路之后有兩條路:1)問系統(tǒng)support拉相關(guān)的系統(tǒng)參數(shù),把新舊系統(tǒng)的參數(shù)進行比對疗隶,看看那里發(fā)生了變化佑笋。2)因為QA沒發(fā)現(xiàn)問題,但是PP重現(xiàn)了斑鼻。那么有可能是新的代碼沒有順利上PP蒋纬,或者代碼依舊存在問題。如果是后者我應該完全模擬PP環(huán)境的flow設置在QA上重新測試坚弱,或者在PP環(huán)境測我的QA環(huán)境flow設置觀察是不是我的測試case問腿蜀备。

好的,雖然他人建議我第一個方案找到問題可能不用改代碼就能解決了荒叶,但是我考慮到交流成本還有各種未知碾阁,我覺得方案二更可控。于是我進行了新的一輪測試些楣,發(fā)現(xiàn)首先PP的代碼與QA環(huán)境一致脂凶,其次我在QA環(huán)境配置的原來PP環(huán)境的flow發(fā)出的郵件附件確實也是亂碼。這就很奇怪愁茁,觀察我之前新增的各部分的log蚕钦,發(fā)現(xiàn)一直到輸出的時候都是正常的。其中我還做了另一個測試就是用另一個郵箱發(fā)送附件到目標郵箱鹅很,中文名正常冠桃,排除是郵箱的問題。

所以接下來的思路就是觀察兩個flow的配置有什么不同道宅,根據(jù)以前的經(jīng)驗并沒發(fā)現(xiàn)異樣食听,但是我靈機一動只改了QA原來測試flow上的輸出文件名“中文文件”成能還原出問題的文件名格式“12345_這是一段很長很長的中文公司信息_12345.pdf”胸蛛。發(fā)現(xiàn)問題又出現(xiàn)了!這就很棒棒樱报,雖然不清楚原理葬项,但是我繼續(xù)嘗試掐頭去尾,只生成文件名“這是一段很長很長的中文公司信息.pdf”迹蛤,還是有亂碼問題民珍!難道和文件名的長度有關(guān)?于是我進一步進行測試盗飒,不斷縮短文件名嚷量,當文件名長度為六個的時候亂碼消失了!D嫒ぁ蝶溶!果然和文件名的長度有關(guān),那么是為什么呢宣渗?

于是我上網(wǎng)查詢抖所,發(fā)現(xiàn)這個坑很多人都踩過。當文件名過長的時候痕囱,默認設置下會對文件名進行截斷田轧,所以完整的中文編碼可能會被分開變成以亂疑似亂碼的文字。解決方式就是設置System.getProperties().setProperty("mail.mime.splitlongparameters", "false");(因為Linux下默認是true)感覺這下問題真正被鎖定了鞍恢。

參考鏈接:

https://blog.csdn.net/z69183787/article/details/79238735

https://blog.csdn.net/baidu_35962462/article/details/81062629

最后我們通過在Weblogic啟動參數(shù)設置上增加了 -Dmail.mime.splitlongparameters=false傻粘,然后經(jīng)過各個環(huán)境的測試,發(fā)現(xiàn)中文文件名不在亂碼帮掉,從而真正解決了這個問題弦悉。跌宕起伏的一天終于以完美結(jié)局首位

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市旭寿,隨后出現(xiàn)的幾起案子警绩,更是在濱河造成了極大的恐慌,老刑警劉巖盅称,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肩祥,死亡現(xiàn)場離奇詭異,居然都是意外死亡缩膝,警方通過查閱死者的電腦和手機混狠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疾层,“玉大人将饺,你說我怎么就攤上這事。” “怎么了予弧?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵刮吧,是天一觀的道長。 經(jīng)常有香客問我掖蛤,道長杀捻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任蚓庭,我火速辦了婚禮致讥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘器赞。我一直安慰自己垢袱,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布港柜。 她就那樣靜靜地躺著请契,像睡著了一般。 火紅的嫁衣襯著肌膚如雪潘懊。 梳的紋絲不亂的頭發(fā)上姚糊,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天贿衍,我揣著相機與錄音授舟,去河邊找鬼祈搜。 笑死蔫缸,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的乡小。 我是一名探鬼主播擎淤,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼奢啥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嘴拢?” 一聲冷哼從身側(cè)響起桩盲,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎席吴,沒想到半個月后赌结,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡孝冒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年柬姚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庄涡。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡量承,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撕捍,我是刑警寧澤拿穴,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站忧风,受9級特大地震影響贞言,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阀蒂,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一该窗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚤霞,春花似錦酗失、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至夜畴,卻和暖如春拖刃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贪绘。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工兑牡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人税灌。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓均函,卻偏偏與公主長得像,于是被迫代替她去往敵國和親菱涤。 傳聞我的和親對象是個殘疾皇子苞也,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容