from CharCodeとescapeを利用して漢字を符号化して復号します.

1669 ワード

escape()関数は文字列をエンコードすることができ、このようにしてすべてのコンピュータで文字列を読み取ることができます.この方法はASCII文字と数字を符号化しないし、次のASCII句読点も符号化しない.他のすべての文字は変換シーケンスに置き換えられます.
from CharCode()は、指定されたUnicode値を受け取り、文字列を返します.
ですから、Javascripはこの二つの関数を使って、漢字に対して実体コードunicodeを符号化することができます.
<script type="text/javascript">
//http://www.bangnishouji.com/tools/chtounicode.html
function action(pChoice){ 
switch(pChoice){ 
case "CONVERT_FMT1": 
	$("#show2").val(ascii($("#source").val()));
	break; 
case "CONVERT_FMT2": 
	$("#show2").val(unicode($("#source").val())); 
	break; 
case "RECONVERT": 
	$("#show2").val(reconvert($("#source").val())); 
	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>
プレゼンテーションのアドレス:
クリックして