1、如何把js获取url中文乱码进行转码?
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码:1.传参页面Javascript 代码:<script type=”text/ javascript ”>// <![CDATA[function send(){var url = "test01.html";var userName = $("#userName").html();window.open(encodeURI(url + "?userName=" + userName)); }// ]]>
2、js中url怎样对中文进行编码
可以调用window.encodeURI()进行编码
3、JS对URL字符串进行编码/解码分析
虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊
字符进行过滤。但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问
题。例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2312而接收页面编码是
UTF-8),使用escape()转换传输中文字串就会出现乱码问题。
以下是JS下对URL进行编/解码的各种方法:
escape
方法:返回一个可在所有计算机上读取的编码
String
对象。
function
escape(charString
:
String)
:
String
不会被此方法编码的字符:
@
*
/
+
说明:escape
方法返回一个包含
charstring
内容的字符串值(Unicode
格式)。所有空格、标点、
重音符号以及任何其他非
ASCII
字符都用
%xx
编码替换,其中
xx
等于表示该字符的十六进制数。
例如,空格返回为“%20”。(字符值大于
255
的字符以
%uxxxx
格式存储。)
注意:escape
方法不能用来对“统一资源标识符”(URI)
进行编码。对其编码应使用
encodeURI
和
encodeURIComponent
方法。
encodeURI
方法:返回编码为有效的统一资源标识符
(URI)
的字符串。
function
encodeURI(URIString
:
String)
:
String
不会被此方法编码的字符:!
@
#
$
&
*
(
)
=
:
/
;
?
+
'
说明:encodeURI
方法返回一个已编码的
URI。如果将编码结果传递给
decodeURI,则将返回初始的
字符串。encodeURI
不对下列字符进行编码:“:”、“/”、“;”和“?”。请使用
encodeURIComponent
对这些字符进行编码。
encodeURIComponent
方法:返回编码为统一资源标识符
(URI)
的有效组件的字符串。
function
encodeURIComponent(encodedURIString
:
String)
:
String
不会被此方法编码的字符:!
*
(
)
'
说明:encodeURIComponent
方法返回一个已编码的
URI。如果将编码结果传递给
decodeURIComponent,则将返回初始的字符串。因为
encodeURIComponent
方法将对所有字符编码,
请注意,如果该字符串代表一个路径,例如
/folder1/folder2/default.html,则其中的斜杠也将被
编码,这样,当该字符串作为请求发送到
Web
服务器时它将是无效的。如果字符串中包含多个
URI
组件,请使用
encodeURI
方法进行编码。
unescape
方法:从用
escape
方法编码的
String
对象中返回已解码的字符串。
function
unescape(charString
:
String)
:
String
说明:unescape
方法返回一个包含
charstring
内容的字符串值。所有以
%xx
十六进制形式编码的
字符都用
ASCII
字符集当中等效的字符代替。(以
%uxxxx
格式(Unicode
字符)编码的字符用十六
进制编码
xxxx
的
Unicode
字符代替。)
注意:unescape
方法不应用于解码“统一资源标识符”(URI)。请改用
decodeURI
和
decodeURIComponent
方法。
decodeURI
方法:返回一个已编码的统一资源标识符
(URI)
的非编码形式。
function
decodeURI(URIstring
:
String)
:
String
decodeURIComponent
方法:返回统一资源标识符
(URI)
的一个已编码组件的非编码形式。
function
decodeURIComponent(encodedURIString
:
String)
:
String
BTW:C#中对URL编码的方法。。。
编码:Server.UrlEncode(string)
解码:Server.UrlDecode(string)
前面三种客户端编码都可以用这个方法在后台解码。
4、怎么对url连接进行URL 编码
在js中可以使用escape(), encodeURL(), encodeURIComponent(),三种方法都有一些不会被编码的符号:
escape():@ * / +
encodeURL():!版 @ # $& * ( ) = : / ; ? + '
encodeURIComponent():! * ( ) '
在java端可以使用URLDecoder.decode(“中文”权, "UTF-8");来进行解码
但是由于使用request.getParameter()来获取参数时已经对编码进行了一次解码,所以一般情况下只要在js中使用
encodeURIComponent("中文");
在java端直接使用request.getParameter()来获取即可返回中文。
如果你想在java端使用URLDecoder.decode(“中文”, "UTF-8");来解码也可以在js中进行二次编码,即:
encodeURIComponent(encodeURIComponent("中文"));
如果不进行二次编码的话,在java端通过decode方法取的会是乱码。
5、在JS表单中如何实现传值和URL编码转换
遇到问题自己多试试, 是可以的, service 里面处理逻辑就是为了这一点事务的特性.
另外, OpenSessionInView 是指将 连接传至 页面渲染的视图层(与 SQL 语句中的 select 才有关系), 与你提的问题没什么关系.
btw: 建议使用更细颗度的处理, 不要使用一个 * 就完事了, propagation 默认就是 REQUIRED, 有点多余了.
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" isolation="READ_COMMITTED" rollback-for="Throwable" />
<tx:method name="update*" isolation="READ_COMMITTED" />
<tx:method name="del*" propagation="REQUIRES_NEW"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
6、用JS将URL中的汉字编码成GBK,怎么弄?
var GB2312UnicodeConverter = {用此方法试试。
个人觉得这个转码的工作最好还是在接收端做
7、js怎么处理url编码问题,我现在有个url需要加个参数,假设url地址是http:a/b/c而参
用字符串连接,还有/\这种斜杠最好用编码写
8、js中文转码url问题
js中文转码默认是用urlencode,而php默认的是rawurlencode(),所以编码出来就不一样。
PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者(urlencode)把空格编码为 '+',而后者(rawurlencode)把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。
在解码时,可以使用相应的 urldecode() 和 rawurldecode(),相应地,rawurldecode() 不会把加号('+')解码为空格,而 urldecode() 会。
语法:urlencode($str) rawurlencode($str) urldecode($str) rawurldecode($str)
GBK与UTF-8的转码:
iconv("gbk","utf-8","php中文转码");//把中文gbk编码转为utf8
iconv("utf-8","gbk","php中文转码");//把中文utf8编码转为gbk
9、如何消除PHP和JS 对URL编解码的不同之处,统一前后端对URL的编解码
json_encode()用eval()还原
base64_decode()用base64_encode()还原
数组是searialize()unsearialize。如果你还有想了解的可以去后盾人试试,这样会有不错的效果视频也不错 ,你有时间可以去试试