function EncodeUtf8(s1)
{
var s = escape(s1)
var sa = s.split("%")
var retV =""
if(sa[0] != "")
{
retV = sa[0]
}
for(var i = 1 i < sa.length i ++)
{
if(sa[i].substring(0,1) == "u")
{
retV += Hex2Utf8(Str2Hex(sa[i].substring(1,5)))
}
else retV += "%" + sa[i]
}
return retV
}
function Str2Hex(s)
{
var c = ""
var n
var ss = "0123456789ABCDEF"
var digS = ""
for(var i = 0 i < s.length i ++)
{
c = s.charAt(i)
n = ss.indexOf(c)
digS += Dec2Dig(eval_r(n))
}
//return value
return digS
}
function Dec2Dig(n1)
{
var s = ""
var n2 = 0
for(var i = 0 i < 4 i++)
{
n2 = Math.pow(2,3 - i)
if(n1 >= n2)
{
s += '1'
n1 = n1 - n2
}
else
s += '0'
}
return s
}
function Dig2Dec(s)
{
var retV = 0
if(s.length == 4)
{
for(var i = 0 i < 4 i ++)
{
retV += eval_r(s.charAt(i)) * Math.pow(2, 3 - i)
}
return retV
}
return -1
}
function Hex2Utf8(s)
{
var retS = ""
var tempS = ""
var ss = ""
if(s.length == 16)
{
tempS = "1110" + s.substring(0, 4)
tempS += "10" + s.substring(4, 10)
tempS += "10" + s.substring(10,16)
var sss = "0123456789ABCDEF"
for(var i = 0 i < 3 i ++)
{
retS += "%"
ss = tempS.substring(i * 8, (eval_r(i)+1)*8)
retS += sss.charAt(Dig2Dec(ss.substring(0,4)))
retS += sss.charAt(Dig2Dec(ss.substring(4,8)))
}
return retS
}
return ""
}
%E6%98%BE%E5%BE%AE%E9%95%9C 是UTF-8的加码方式%CF%D4%CE%A2%BE%B5 是GB2312的加码方式
js目前没有自己指定编码方式的加码方法。
加码方法有以下2种
encodeURI 方法
将文本字符串编码为一个有效的统一资源标识符 (URI)。
encodeURI(URIString)
必选的 URIString 参数代表一个已编码的 URI。
encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、"" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。
encodeURIComponent 方法
将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。
encodeURIComponent(encodedURIString)
必选的 encodedURIString 参数代表一个已编码的 URI 组件。
encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。
现在编码方式主要有两种,一个是utf-8,一个GB2312,如果编码方式不同,会导致页面出现乱码。想修改编码方式一般可以用charset指定,也可以再工具中设置:1.可以在使用script标签时指定。
如: <script type="text/javascript" src="myscripts.js" charset="UTF-8"></script>
2.以DW为例,工具栏里点击编辑,找到‘首选参数’点击,找到‘新建文档’点击进去就可以看到修改编码格式了。