|
|
|
|
|
今天測(cè)試一張網(wǎng)頁(yè),在PC瀏覽器和安卓手機(jī)上都能正常打開(kāi),但是在蘋(píng)果手機(jī)上卻打不開(kāi),一時(shí)無(wú)解。
后來(lái)經(jīng)過(guò)反復(fù)測(cè)試,終于發(fā)現(xiàn)了問(wèn)題,原來(lái)是地址包含中文字符的問(wèn)題!
原來(lái),當(dāng)網(wǎng)址上包含中文字符時(shí),在蘋(píng)果手機(jī)上是無(wú)法打開(kāi)的,必須要先進(jìn)行字符編碼。這可能是蘋(píng)果手機(jī)瀏覽器不能對(duì)中文字符進(jìn)行自動(dòng)編碼的原因吧,而PC瀏覽器和安卓手機(jī)的瀏覽器則無(wú)問(wèn)題。
那么我們要如何進(jìn)行字符編碼呢?這可以使用js來(lái)實(shí)現(xiàn)。函數(shù)是這個(gè):
encodeURI()
關(guān)于JavaScript encodeURI() 函數(shù)
定義和用法
encodeURI() 函數(shù)可把字符串作為 URI 進(jìn)行編碼。
語(yǔ)法
encodeURI(URIstring)
參數(shù):URIstring 必需。
描述:一個(gè)字符串,含有 URI 或其他要編碼的文本。
返回值
URIstring 的副本,其中的某些字符將被十六進(jìn)制的轉(zhuǎn)義序列進(jìn)行替換。
說(shuō)明
該方法不會(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://www.howtostagehomes.com")+ "<br />")
document.write(encodeURI("http://www.howtostagehomes.com/My first/"))
document.write(encodeURI(",/?:@&=+$#"))
</script>
輸出:
http://www.howtostagehomes.com
http://www.howtostagehomes.com/My%20first/
,/?:@&=+$#