Skip to content

Instantly share code, notes, and snippets.

@Jeff2Ma
Created August 12, 2014 15:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Jeff2Ma/f9181801942a8f1f5c8d to your computer and use it in GitHub Desktop.
Save Jeff2Ma/f9181801942a8f1f5c8d to your computer and use it in GitHub Desktop.
Javascript 汉字编码转换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.btn{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #666666;
text-align: left;
text-decoration: none;
display: block;
overflow: visible;
margin-right: 10px;
margin-left: 10px;
}
.btn a:hover {
background-color: #d8dfea;
border-top-width: 1px;
border-bottom-width: 1px;
border-top-style: solid;
border-bottom-style: solid;
border-top-color: #333366;
border-bottom-color: #333366;
}
.btn a {
display: block;
text-decoration: none;
color: #666666;
border-top-width: 1px;
border-bottom-width: 1px;
border-top-style: solid;
border-bottom-style: solid;
border-top-color: #CCCCCC;
border-bottom-color: #CCCCCC;
width: 100px;
padding-top: 5px;
padding-right: 10px;
padding-bottom: 5px;
padding-left: 30px;
overflow: visible;
float: left;
}
html {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #333333;
line-height: 18px;
margin: 0px;
}
-->
body{
margin:0px;
}
</style>
</head>
<body>
<p>
<textarea name="source" rows="14" id="source" style="width:99%">中华人民共和国万岁
中華人民共和國萬歲
\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD\u4E07\u5C81
\u4E2D\u83EF\u4EBA\u6C11\u5171\u548C\u570B\u842C\u6B72
</textarea>
</p>
<div class="btn">
<a href="javascript:action('CONVERT_FMT1')">
<strong>Convert</strong><br />
Fmort &amp;#xxxx </a></div>
<div class="btn">
<a href="javascript:action('CONVERT_FMT2')">
<strong>Convert</strong><br />
Fmort \uxxxx
</a>
</div>
<div class="btn">
<a href="javascript:action('RECONVERT')">
<strong>ReConvert</strong><br />
To 汉字 </a>
</div>
<p>
<div id="tt" style="display:none"></div>
<textarea name="show2" rows="14" id="show2" style="width:99%"></textarea>
</p>
</body>
</html>
<script language="javascript" type="text/javascript">
var oSource = document.getElementById("source");
var oShow2 = document.getElementById("show2");
var oTt = document.getElementById("tt");
function action(pChoice){
switch(pChoice){
case "CONVERT_FMT1":
oShow2.value = ascii(oSource.value);
break;
case "CONVERT_FMT2":
oShow2.value = unicode(oSource.value);
break;
case "RECONVERT":
oShow2.value = reconvert(oSource.value);
break;
}
}
function ascii(str){
return str.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"\&#x$2;")});
}
function unicode(str){
return str.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"\\u$2")});
}
function reconvert(str){
str = str.replace(/(\\u)(\w{4})/gi,function($0){
return (String.fromCharCode(parseInt((escape($0).replace(/(%5Cu)(\w{4})/g,"$2")),16)));
});
str = str.replace(/(&#x)(\w{4});/gi,function($0){
return String.fromCharCode(parseInt(escape($0).replace(/(%26%23x)(\w{4})(%3B)/g,"$2"),16));
});
return str;
}
</script>
@Jeff2Ma
Copy link
Author

Jeff2Ma commented Aug 12, 2014

拷贝代码并另存为HTML页面,即可使用。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment