2026年1月19日 星期一

初探 String.toWellFormed()

 初探 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()


相關文章與資料

初探 String.isWellFormed()

沒有留言:

張貼留言