js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XX函数代码

最近看不少在线工具里面都有一些编码转换的代码,很多情况下我们都用得到,这里我们小编就跟大家分享一下这些资料

Unicode介绍

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。
Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。
Unicode 到目前为止所定义的五个平面中,第0平面(BMP)最为重要,其编码中文汉字范围为:4E00-9FBFCJK 统一表意符号 (CJK Unified Ideographs)

ASCII介绍

ASCII是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。
它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
0-127 是7位ASCII 码的范围,是国际标准。至于汉字,不同的字符集用的ascii 码的范围也不一样,常用的汉字字符集有GB2312-80,GBK,Big5,unicode 等。
GB_2312 字符集是目前最常用的汉字编码标准。在这个标准中,每个汉字用2个字节来表示,每个字节的ascii码为 161-254 (16 进制A1 - FE),第一个字节 对应于 区码的1-94 区,第二个字节 对应于位码的1-94 位。

ASCII介绍

native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。为什么要进行转码,原因在于程序的国际化。
安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录,其中native2ascii.exe正是native2ascii中文转unicode工具。
native2ascii的命令行的命名格式:native2ascii -[options] [inputfile [outputfile]]。
例如:native2ascii zh.txt u.txt:将zh.txt转换为Unicode编码,输出文件到u.txt。

本工具中汉字与Unicode转换采用PHP开发,支持十六进制和十进制表示,能够中文汉字和Unicode互转;默认情况下采用十六进制。

下面函数都需要用到的函数

function left_zero_4(str) {
			if (str != null && str != '' && str != 'undefined') {
				if (str.length == 2) {
					return '00' + str;
				}
			}
			return str;
		}

中文汉字转Unicode

function unicode(str){
			var value='';
			for (var i = 0; i < str.length; i++) {
				value += '\\u' + left_zero_4(parseInt(str.charCodeAt(i)).toString(16));
			}
			return value;
		}
		function left_zero_4(str) {
			if (str != null && str != '' && str != 'undefined') {
				if (str.length == 2) {
					return '00' + str;
				}
			}
			return str;
		}

Unicode转中文汉字、ASCII转换Unicode

function reconvert(str){
			str = str.replace(/(\\u)(\w{1,4})/gi,function($0){
				return (String.fromCharCode(parseInt((escape($0).replace(/(%5Cu)(\w{1,4})/g,"$2")),16)));
			});
			str = str.replace(/(&#x)(\w{1,4});/gi,function($0){
				return String.fromCharCode(parseInt(escape($0).replace(/(%26%23x)(\w{1,4})(%3B)/g,"$2"),16));
			});
			str = str.replace(/(&#)(\d{1,6});/gi,function($0){
				return String.fromCharCode(parseInt(escape($0).replace(/(%26%23)(\d{1,6})(%3B)/g,"$2")));
			}); 

			return str;
		}

Unicode转换ASCII

		function unicode1(str){
			var value='';
			for (var i = 0; i < str.length; i++)
				value += '&#' + str.charCodeAt(i) + ';';
			return value;
		} 

中文转换&#XXXX

		function ascii(str){
			var value='';
			for (var i = 0; i < str.length; i++) {
				value += '\&#x' + left_zero_4(parseInt(str.charCodeAt(i)).toString(16))+';';
			}
			return value;
		} 

完整的可以测试的代码

		<script type="text/javascript">
		function a(pChoice){
			var inputEle = document.getElementById('input_area');
			var outputEle = document.getElementById('output_area');
			switch(pChoice){
				case "CONVERT_FMT1":
					outputEle.value = ascii(inputEle.value);
					break;
				case "CONVERT_FMT2":
					outputEle.value = unicode(inputEle.value);
					break;
				case "CONVERT_FMT3":
					outputEle.value = unicode1(inputEle.value);
					break;
				case "RECONVERT":
					outputEle.value = reconvert(inputEle.value);
					break;
			}
		}
		function ascii(str){
			var value='';
			for (var i = 0; i < str.length; i++) {
				value += '\&#x' + left_zero_4(parseInt(str.charCodeAt(i)).toString(16))+';';
			}
			return value;
		}
		function unicode(str){
			var value='';
			for (var i = 0; i < str.length; i++) {
				value += '\\u' + left_zero_4(parseInt(str.charCodeAt(i)).toString(16));
			}
			return value;
		}
		function left_zero_4(str) {
			if (str != null && str != '' && str != 'undefined') {
				if (str.length == 2) {
					return '00' + str;
				}
			}
			return str;
		}
		function unicode1(str){
			var value='';
			for (var i = 0; i < str.length; i++)
				value += '&#' + str.charCodeAt(i) + ';';
			return value;
		}
		function reconvert(str){
			str = str.replace(/(\\u)(\w{1,4})/gi,function($0){
				return (String.fromCharCode(parseInt((escape($0).replace(/(%5Cu)(\w{1,4})/g,"$2")),16)));
			});
			str = str.replace(/(&#x)(\w{1,4});/gi,function($0){
				return String.fromCharCode(parseInt(escape($0).replace(/(%26%23x)(\w{1,4})(%3B)/g,"$2"),16));
			});
			str = str.replace(/(&#)(\d{1,6});/gi,function($0){
				return String.fromCharCode(parseInt(escape($0).replace(/(%26%23)(\d{1,6})(%3B)/g,"$2")));
			}); 

			return str;
		}
		</script>

<style>
textarea {
 width: 100%;
 height: 200px;
 resize:vertical;
 border: 1px solid #CCC;
 /*border-radius:8px;*/
 padding:4px;
 box-shadow: 2px 2px 5px #d3d6da;
 -moz-box-shadow: 2px 2px 5px #d3d6da;
}
</style>
提供一个中文汉字Unicode互转、 ASCII与Unicode互转的在线工具,方便帮助你解决中文的乱码问题。

	  <div class='divider'></div>
	  <textarea id="input_area" name="input_area" placeholder="贴入要处理的Unicode或Ascii字符" value="">jb51.net - 我们</textarea>
			<div class='row'>
				<button onclick="javascript:a('CONVERT_FMT2');">中文汉字转Unicode</button>
				<button onclick="javascript:a('RECONVERT');">Unicode转中文汉字</button>
				<button onclick="javascript:a('RECONVERT')">ASCII转换Unicode</button>
				<button onclick="javascript:a('CONVERT_FMT3');">Unicode转换ASCII</button>
				<button onclick="javascript:a('CONVERT_FMT1');">中文转换&#XXXX</button>
			</div>
<textarea name="output_area" id="output_area" onclick="this.select();" placeholder="处理之后的Unicode或Ascii字符" value=""></textarea>

看到这里了我们小编再为大家分享一个好用的可以将&#数字编码转换为字符串的方法

<script>
//带;号
var str="https://www.jb51.net/article/1.htm";
//不带分号
var str2="&#104&#116&#116&#112&#115&#58&#47&#47&#119&#119&#119&#46&#106&#98&#53&#49&#46&#110&#101&#116&#47&#97&#114&#116&#105&#99&#108&#101&#47&#49&#46&#104&#116&#109";
function uncode(str) {
return str.replace(/&#(x)?([^&]{1,5});?/g, function (a, b, c) {
return String.fromCharCode(parseInt(c, b ? 16 : 10));
})
}

document.write(uncode(str));
document.write("<br>");
document.write(uncode(str2));
</script>

这里就介绍这么多,具体的大家可以多测试一下。

在线Unicode/中文转换工具

(0)

相关推荐

  • JS实现汉字与Unicode码相互转换的方法详解

    本文实例讲述了JS实现汉字与Unicode码相互转换的方法.分享给大家供大家参考,具体如下: js文件中,有些变量的值可能会含有汉字,画面引入js以后,有可能会因为字符集的原因,把里面的汉字都变成乱码.后来发现网上的一些js里会把变量中的汉字都表示成"\u"开头的16进制编码,这样应该可以解决上面的问题. 最近有时间在网上查找了一下实现方式,一种比较大众化的: function tounicode(data) { if(data == '') return '请输入汉字'; var s

  • javascript unicode与GBK2312(中文)编码转换方法

    复制代码 代码如下: var GB2312UnicodeConverter = {    ToUnicode: function (str) {        return escape(str).toLocaleLowerCase().replace(/%u/gi, '\\u');    }    , ToGB2312: function (str) {        return unescape(str.replace(/\\u/gi, '%u'));    }}; var str = '

  • JS实现的汉字与Unicode码相互转化功能分析

    本文实例讲述了JS实现的汉字与Unicode码相互转化功能.分享给大家供大家参考,具体如下: 有时候,我们在给后端传递变量的的值中有汉字,可能由于编码的原因,传递到后端后变为乱码了.所以有时候为了省事或者其它特殊要求的时候,会把传递的汉字转换成Unicode编码后再进行传递. 当然汉字转换成unicode编码,使用JS的charCodeAt()方法就可以. '好'.charCodeAt(0).toString(16) "597d" 这段代码的意思是,把字符'好'转化成Unicode编码

  • js unicode 编码解析关于数据转换为中文的两种方法

    复制代码 代码如下: var str = "\\u6211\\u662Funicode\\u7F16\\u7801"; 关于这样的数据转换为中文问题,常用的两种方法. 1. eval 解析 复制代码 代码如下: str = eval("'" + str + "'"); // "我是unicode编码" 2. unescape 解析 复制代码 代码如下: str = unescape(str.replace(/\\u/g, &q

  • 如何让Jackson JSON生成的数据包含的中文以unicode方式编码

    我们都知道,Jackson JSON以高速.方便和灵活著称.之前的文章中介绍过使用注解的形式来规定如何将一个对象序列化成JSON的方法,以及如何将一个JSON数据反序列化到一个对象上.但是美中不足的一点就是对于中文的处理.当然我说的美中不足是在默认情况下,Jackson JSON不会将中文等非ASCII字符转换为\uFFFF这样的形式来显示.也就是说默认情况下会显示为{"name":"张三"}而不是{"name":"\u5F20\u4E

  • 解决JSON.stringify()自动将中文转译成unicode的问题

    最近在工作中,发现在IE8下JSON.stringify()自动将中文转译为unicode编码,原本选择的中文字符,传到后台变为了unicode编码,即\u****的形式.查找资料后发现,与标准的JSON.stringify()不同,IE8内置的JSON.stringify()会自动将编码从utf-8转为unicode编码,导致出现这种类似于乱码的情况. 解决方法分为两种,第一种是后台接收到数据之后,将该数据再进行一次转码,重新转为utf-8,然后再保存到数据库中,这样,再次从数据库取出传给前端

  • Json_encode防止汉字转义成unicode的方法

    大家都知道,json_encode通常会把json中的汉字转义成unicode,但是这并不一定是我们想要的.有时候,我们需要获得汉字形式的json字符串,比如需要获得gbk编码的json字符串(只要把汉字形式的字符串转码就可以得到了).有什么好办法么? php官方听到了这个需求,并提供了一种可靠的解决方案:JSON_UNESCAPED_UNICODE.这个参数可以保证json_encode不再将汉字转为unicode. 似乎这样就解决了?当我们高高兴兴的用这个参数的时候,发现并没有什么卵用.仔细

  • 无语,javascript居然支持中文(unicode)编程!

    很早以前发现对于一个 html 元素, id 可以是中文的,而且用 getElementById 方法可以正确取到dom 小弟孤陋寡闻,今天才知道 ie居然支持 javascript中文编程 <input type=button value="gorush" id="阿舜"> <script> function 阿舜::onclick(){alert(this.value)} //c++风格 function 阿舜::onmouseout()

  • JS将unicode码转中文方法

    原理,将unicode的 \u 先转为 %u,然后使用unescape方法转换为中文. <script type="text/javascript"> var str = "\u7434\u5fc3\u5251\u9b44\u4eca\u4f55\u5728\uff0c\u6c38\u591c\u521d\u6657\u51dd\u78a7\u5929\u3002"; document.write(unescape(str.replace(/\\u/g,

  • js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XX函数代码

    最近看不少在线工具里面都有一些编码转换的代码,很多情况下我们都用得到,这里我们小编就跟大家分享一下这些资料 Unicode介绍 Unicode(统一码.万国码.单一码)是一种在计算机上使用的字符编码. Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求. Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案.Unicode用数字0-0x10FFFF来映射这些字符,最多

  • js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码

    最近看不少在线工具里面都有一些编码转换的代码,很多情况下我们都用得到,这里我们小编就跟大家分享一下这些资料 Unicode介绍 Unicode(统一码.万国码.单一码)是一种在计算机上使用的字符编码. Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求. Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案.Unicode用数字0-0x10FFFF来映射这些字符,最多

  • JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】

    本文实例讲述了JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法.分享给大家供大家参考,具体如下: 实现效果: 图一: 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字,所以alert对话框中显示的是多种读音的组合: 如何实现? 如何实现通过拼音首字母快速查找页面内的中文内容呢? 过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后,对所有人名建立一个索引,生成拼音首字母与姓名的对应关系:然后监听键盘事件,当用户按下键盘时,根据键值得到按下的

  • C#实现将汉字转化为2位大写的16进制Unicode的方法

    本文实例讲述了C#实现将汉字转化为2位大写的16进制Unicode的方法.分享给大家供大家参考.具体实现方法如下: 说明: str.ToString("x") : 转为1位16进制小写 str.ToString("X") : 转为1位16进制大写 str.ToString("X2"):转为2位16进制大写 具体代码如下: 复制代码 代码如下: publicstaticstring StringToUnicode16(string text, st

  • javascript 判断中文字符长度的函数代码

    JS的字符串都是string对象,可以用string对象的length属性可以获取其长度,但是无论是中文.全角符号以及英文最小长度单位都是1,这与php的strlen()并不相同. 复制代码 代码如下: function strlen(str) { var s = 0; for(var i = 0; i < str.length; i++) { if(str.charAt(i).match(/[u0391-uFFE5]/)) { s += 2; } else { s++; } } return

  • JS实现将数字金额转换为大写人民币汉字的方法

    本文实例讲述了JS实现将数字金额转换为大写人民币汉字的方法.分享给大家供大家参考,具体如下: //代码如下所示: function convertCurrency(money) { //汉字的数字 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); //基本单位 var cnIntRadice = new Array('', '拾', '佰', '仟'); //对应整数部分扩展单位 var cnInt

  • JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享

    要实现类似功能,用JS就可以,实现方法如下: 一.javascript函数实现:实例1: 复制代码 代码如下: //JavaScript函数:var minute = 1000 * 60;var hour = minute * 60;var day = hour * 24;var halfamonth = day * 15;var month = day * 30;function getDateDiff(dateTimeStamp){var now = new Date().getTime()

  • PHP汉字转换拼音的函数代码

    本文实例为大家分享了PHP汉字转换拼音的函数代码,供大家参考,具体实现内容如下 <?php /************ *汉字转换拼音Class *************/ class pin{ function Pinyin($_String, $_Code='gb2312'){ $_DataKey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|

  • 前端使用crypto.js进行加密的函数代码

    crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5.SHA1.SHA2.SHA3.RIPEMD-160 哈希散列,进行 AES.DES.Rabbit.RC4.Triple DES 加解密. 可以在这个GitHub的https://github.com/brix/crypto-js上下载该js,它可以单独引入所需要加密方式的js:也可以引入一个crypto-js.js 这个文件,它相当于引入了所有的加密方式,我使用的就是后者

  • Unicode中文转码函数代码

    实在搞不懂TX,用户名的编码竟然返回的值不一样,如 "雷磊52D",就有如下两种返回?雷磊?52D 和 %01%u96F7%u78CA%0152D.相当的郁闷啊.好在TX还有返回中文名字,就省去的解码的过程,但还是记录下. 复制代码 代码如下: /// <summary> /// Unicode字符转换为中文字符,如96F7,78CA等" /// </summary> private char UnicodeToChineseByHex(string

随机推荐