utf-8编码技巧 url编码问题

在用utf-8编码的页面中,通过ASP内置对象Server.URLEncode()编码后的URL不能正确的找到文件,解决方法是用JavaScript的escape()函数进行编码
编码比较程序
Asp版 


代码如下:

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>无标题文档</title> 
</head>

<body> 
<%  
Response.Write("server对象输出<br />"); 
Response.Write(Server.URLEncode("ether.エーテル.gif")); 
Response.Write("<br />"); 
Response.Write("JavaScript函数encodeurl输出<br />"); 
Response.Write(encodeURI("ether.エーテル.gif")); 
Response.Write("<br />"); 
Response.Write("JavaScript函数escape输出<br />"); 
Response.Write(escape("ether.エーテル.gif")); 
%> 
</body> 
</html>

JavaScript版


document.write(encodeURI("ether.エーテル.gif"));
document.write("
");
document.write(escape("ether.エーテル.gif"));

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

escape() 方法:

采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。

不会被此方法编码的字符: @ * / +

encodeURI() 方法:

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。

不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

encodeURIComponent() 方法:

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。

不会被此方法编码的字符:! * ( ) '

因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。

另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。

(0)

相关推荐

  • php中utf-8编码下用正则表达式如何匹配汉字

    在javascript中,要判断字符串是中文是很简单的.比如: 复制代码 代码如下: var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); } else { alert("该字符串不全部是中文"); } 想当然的,在php中来判断字符串是否为中文,就会沿袭这个思路: 复制代码 代码如下: <?php $str = "php编程&qu

  • utf-8编码引起js输出中文乱码的解决办法

    编码规则是utf-8,如网页头中的: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 那么js文件中如果有中文输出就会出现乱码,解决此个问题有两个方法: 1.在引用javascript输出的地方加上charset="gb2312" 或 charset="big5"(假设输出的是Big5繁体字). 例: <script

  • ASP生成UTF-8编码的代码

    方法一:createtextfile生成文件方法 function WriteToFile(FileName,FileContent)     set fso=server.createobject("scripting.filesystemobject")     set fp=fso.createtextfile(server.mappath(FileName),,True)     fp.write(FileContent) end function 方法二:ADODB.Stre

  • 修改mysql5.5默认编码(图文步骤修改为utf-8编码)

    mysql数据库的默认编码并不是utf-8. 安装mysql后,启动服务并登陆,使用show variables命令可查看mysql数据库的默认编码: 由上图可见database和server的字符集使用了latin1编码方式,不支持中文,即存储中文时会出现乱码.以下是命令行修改为utf-8编码的过程,以支持中文. (1)关闭mysql服务 复制代码 代码如下: service mysql stop (2)修改 /etc/mysql/my.cnf  (默认的安装路径) 复制代码 代码如下: vi

  • utf-8编码转换成gb2312

    [code]<script>   function  chinesefromutf8url(strutf8)     {              var  bstr  =  "";              var  noffset  =  0;  //  processing  point  on  strutf8                          if(  strutf8  ==  ""  )                  re

  • UTF-8编码问题BOM详细介绍

    今天在写php代码的时候,出现一个特郁闷的问题那就是两个一模一样的文件,在IE下显示有一个文件却出显了一个空白行,如地址所示http://www.kuomart.com/blog/my_ex/bom_utf8.htm以上出现空白行的页面是用php的require('t.htm')导入模板输出的,而我的php文件和htm文件都是用的记事本写的,然后保存为utf-8编码的,这样之后就出现了用nodepad保存utf8文件自动添加bom到文件的开始,起先自己测试用nodepad,dw,edplus打开

  • UTF-8编码第1/2页

    参考文档:http://www.linuxforum.net/books/UTF-8-Unicode.html 代码如下: =========================================== 复制代码 代码如下: <script language="VBScript"> 'http://www.linuxforum.net/books/UTF-8-Unicode.html Public Function UTF8EncodeChar(z) Dim c :

  • 解决IE不能主动识别UTF-8编码的问题的方法

    之前在动态页面静态化的过程中,IE打开页面后不显示内容,但html代码数据已经下载下来了,将其"字符编码"手动改"utf-8"才可以显示,到google搜索一下,找到解决方法了,为了方便自己也方便别人就把解决方法贴出来! google上搜索的解决方法 -------------------------------------------------------------------------------- 在windows操作系统上使用IE作为浏览器时.常常会发

  • utf-8编码技巧 url编码问题

    在用utf-8编码的页面中,通过ASP内置对象Server.URLEncode()编码后的URL不能正确的找到文件,解决方法是用JavaScript的escape()函数进行编码 编码比较程序 Asp版  复制代码 代码如下: <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&

  • .Net结合JS实现URL编码与解码

    目录 解决问题 1.为什么需要编码? 1.1 浏览器对于中文的编码 1.2 需要编码的原因还有几点 2.怎样编码? 3.实际出现的问题解决方法 3.1.escape函数: 3.2.encodeURI函数 3.3.encodeURIComponent函数 在项目中碰到了ajax传来的参数,后台接收值乱码(如下图)的问题 在此记录一下 前台: 后台: 解决问题 为什么需要编码 怎样编码 实际出现的问题解决方法 1.为什么需要编码? URL 只能使用 ASCII 字符集来通过因特网进行发送.也就是说U

  • python中文字符如何转url编码

    目录 如何将中文字符转url编码 python url编码和url解码方法 函数介绍 编码 解码 总结 如何将中文字符转url编码 import urllib.parse name = urllib.parse.quote('中文') python url编码和url解码方法 记录一下用python对文字的url编码和url解码方法,不对基础url编码分析 urllib库是一个python的自带库,使用的时候不需要下载,可以直接导入使用 函数介绍 函数 介绍 urllib.parse.quote

  • C++类URL编码和解码使用技巧

    在项目开发过程中,经常会使用到c++ 的url编码和解码,本文将以此问题详细介绍使用技巧,需要的朋友可以参考下 复制代码 代码如下: #pragma once #include <iostream> #include <string> #include <windows.h> using namespace std; class strCoding { public: strCoding(void); ~strCoding(void); void UTF_8ToGB23

  • python实现中文转换url编码的方法

    本文实例讲述了python实现中文转换url编码的方法.分享给大家供大家参考,具体如下: 今天要处理百度贴吧的东西.想要做一个关键词的list,每次需要时,直接添加 到list里面就可以了.但是添加到list里面是中文的情况(比如'丽江'),url的地址编码却是'%E4%B8%BD%E6%B1%9F',因此需 要做一个转换.这里我们就用到了模块urllib. >>> import urllib >>> data = '丽江' >>> print dat

  • url 编码 js url传参中文乱码解决方案

    1.配置文件web.config中 在节中加上整个网站的编码方式. <globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312"/> 这样参数就以gb2312的中文编码方式传输了.而一般默认是utf-8. 2.在传参是先编码在传输,接受时先编码,在接收. string mm=Server.URLEncode(你); Res

  • JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结

    本文实例讲述了JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作.分享给大家供大家参考,具体如下: Js 中的运算符优先级 优先级依次降低 () !.-.++.– *./.% +.- <.<=.<.>= ==.!=.===.!==. && || ?: =.+=.-=.*=./=.%= URL 编码和解码 encodeURIComponent() decodeURIComponent() encodeURI() decode

  • asp.net URL编码与解码

    例如Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8.如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码. 又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文.否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成

  • javascript URL编码和解码使用说明

    在有些传递页面使用GB2312,而在接收页面使用 UTF8,这样接收到的参数就可能会与原来发生不一致.使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的 encodeURI函数编码的URL,结果就不一样. javaScript中的编码方法: escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码 (xx等于该字符在字符集表里面的编码的16进制数字).比

  • php的urlencode()URL编码函数浅析

    URLEncode的方式一般有两种,一种是传统的基于GB2312的Encode(Baidu.Yisou等使用),另一种是基于UTF-8的Encode(Google.Yahoo等使用). 本工具分别实现两种方式的Encode与Decode: 中文 -> GB2312的Encode -> %D6%D0%CE%C4 中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87 Html中的URLEncode: 编码为GB2312的html文件中:http://s.jb

随机推荐