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