初探 String.toWellFormed()
前言
在先前的 初探 String.isWellFormed() 提到字串可以有不符合 UTF16 格式的字元,JavaScript 有提供 String.toWellFormed() 來消除不符合格式的字元,在此把學習的過程做個紀錄。
內容
範例如下
console.log( 'Hello world \uD800');//Hello world � //Followed will be error! //console.log( encodeURI( 'Hello world \uD800') ); // console.log( encodeURI( 'Hello world \uD800'.toWellFormed() ) );//Hello%20world%20%EF%BF%BD
如果字串裡含有非 UTF16 格式的字元可以正常顯示嗎?答案是可以的,不會報錯,該字元會用特別符號顯示,如範例第一例。既然可以正常顯示又有必要去除嗎?有些函式因為功能的關係,無法接受含有非 UTF16 格式的字元,如 [ developer.mozilla.org ] encodeURI() ,如果把含有非 UTF16 格式的字元輸入會直接報錯,這時就可以透過 String.toWellFormed() 來修正這個問題。
參考資料
[ developer.mozilla.org ] String.prototype.toWellFormed()
[ developer.mozilla.org ] encodeURI()
沒有留言:
張貼留言