|
|
|
|
|
|
今天測試一張網頁,在PC瀏覽器和安卓手機上都能正常打開,但是在蘋果手機上卻打不開,一時無解。
后來經過反復測試,終于發現了問題,原來是地址包含中文字符的問題!
原來,當網址上包含中文字符時,在蘋果手機上是無法打開的,必須要先進行字符編碼。這可能是蘋果手機瀏覽器不能對中文字符進行自動編碼的原因吧,而PC瀏覽器和安卓手機的瀏覽器則無問題。
那么我們要如何進行字符編碼呢?這可以使用js來實現。函數是這個:
encodeURI()
關于JavaScript encodeURI() 函數
定義和用法
encodeURI() 函數可把字符串作為 URI 進行編碼。
語法
encodeURI(URIstring)
參數:URIstring 必需。
描述:一個字符串,含有 URI 或其他要編碼的文本。
返回值
URIstring 的副本,其中的某些字符將被十六進制的轉義序列進行替換。
說明
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。
該方法的目的是對 URI 進行完整的編碼,因此對以下在 URI 中具有特殊含義的 ASCII 標點符號,encodeURI() 函數是不會進行轉義的:;/?:@&=+$,#
提示和注釋
提示:如果 URI 組件中含有分隔符,比如 ? 和 #,則應當使用 encodeURIComponent() 方法分別對各組件進行編碼。
實例
在本例中,我們將使用 encodeURI() 對 URI 進行編碼:
<script type="text/javascript">
document.write(encodeURI("http://www.cuckooft.com")+ "<br />")
document.write(encodeURI("http://www.cuckooft.com/My first/"))
document.write(encodeURI(",/?:@&=+$#"))
</script>
輸出:
http://www.cuckooft.com
http://www.cuckooft.com/My%20first/
,/?:@&=+$#
