在 Web 應用程式上要做關鍵字搜尋時,用的是自製的搜尋元件,前端與後端都是自製的。一直以來都沒有什麼問題,而這次的新案子測試人員發現罕用字出現了問題。
輸入關鍵字,查詢出來顯示時還是正常的,點選需要的資料帶入 textbox 時,罕用字卻變成了 &#xxxxx; 這樣的型式 (xxxxx 是10進位數字)
嘗試了呼叫 unescape、decodeURI、decodeURIComponent 都無法處理
後來只好問 google,找到一些資料之後,寫成以下的 function,提供出來給大家參考:
//-------------------------------------------- // 將字串裡的 unicode 換成文字 //-------------------------------------------- function ConvertUnicode(str) { // 先處理 \uXXXX 這種型式的 str = unescape(str); // 然後再處理 &#XXXXX; 這種型式的 var regexp = /&#[0-9]+;/g; var match = regexp.exec(str); while (match !== null) { var s = String.fromCharCode(match[0].replace(/[&#;]/g, "")); str = str.replace(new RegExp(match[0], "g"), s); match = regexp.exec(str); } return str; }
沒有留言:
張貼留言