js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码
最近看不少在线工具里面都有一些编码转换的代码,很多情况下我们都用得到,这里脚本之家小编就跟大家分享一下这些资料
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互转;默认情况下采用十六进制。
下面函数都需要用到的函数
1
2
3
4
5
6
7
8
|
function left_zero_4(str) { if (str != null && str != '' && str != 'undefined' ) { if (str.length == 2) { return '00' + str; } } return str; } |
中文汉字转Unicode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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
1
2
3
4
5
6
|
function unicode1(str){ var value= '' ; for ( var i = 0; i < str.length; i++) value += '&#' + str.charCodeAt(i) + ';' ; return value; } |
中文转换&#XXXX
1
2
3
4
5
6
7
|
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; } |
完整的可以测试的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<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> |
这里就介绍这么多,具体的大家可以多测试一下。
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换&#XXX函数代码的更多相关文章
- 控制台程序的中文输出乱码问题(export LC_CTYPE=zh_CN.GBK,或者修改/etc/sysconfig/i18n为zh_CN.GBK。使用setlocale(LC_CTYPE, "");会使用默认办法。编译器会将源码做转换成Unicode格式,或者指定gcc的输入文件的编码参数-finput-charset=GBK。Linux下应该用wprintf(L"%ls/n",wstr))
今天发现用securecrt登陆时,gcc编译出错时会出现乱码,但直接在主机的窗口界面下用Shell编译却没有乱码.查看了一下当时的错误描述,发现它的引号是中文引号,导致在SecureCRT中显示出错 ...
- ASCII码、Unicode码 转中文
ASCII码.Unicode码 转中文 在最近工作中遇到了一些汉字编码转换的处理,可以通过正则表达式及转换字符来实现转成中文 Unicode转换示例 通常为10位编码, 通过digit参数传入 pri ...
- Qt、Vc下用fopen打开中文名字的文件(转换成Unicode后,使用_wfopen函数)
在做一个Qt项目的时候,完成上传文件时,通过fopen打开文件用来读时发现fopen不能打开中文的文件名,自己在网查找一下,解决方法如下 参考:http://weidaohang.org/wanglu ...
- C# 实现十六进制Unicode编码字符串转换为汉字
网上找了几个方法,但是运行之后会报错,提示要解析的字符串格式不正确.然后我猜想可能是传入的字符串 \u60a8\u4eca\u65e5\u5df2\u7b7e\u5230 中带"\" ...
- js ajax post提交 ie和火狐、谷歌提交的编码不一致,导致中文乱码
今天遇到一个问题找了很久发现: 使用js ajax post提交 ie和火狐.谷歌提交的编码不一致,导致中文乱码 //http://www.cnblogs.com/QGC88 $.ajax({ url ...
- ASCII编码、Unicode编码、UTF-8
一.区别 ASCII.Unicode 是“字符集” UTF-8 .UTF-16.UTF-32 是“编码规则” 其中: 字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code ...
- Java基础笔记(六)——进制表示、ASCII码和Unicode编码
Java中有三种表示整数的方法:十进制.八进制.十六进制. 八进制:以0开头,包括0~7的数字.如:int octal=020; //定义int型变量存放八进制数据 十六进制:以0x或0X开头,包括 ...
- 第48篇 字符编码探密--ASCII,UTF8,GBK,Unicode
原文地址:http://blog.laofu.online/2017/08/22/encode-string/ ASCII 的由来 在计算机的“原始社会”,有人想把日常的使用的语言使用计算机来表示, ...
- ASCII编码和Unicode编码的区别
链接: 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了.Unicode标准也在不断发展,但最常用的是用两个字 ...
随机推荐
- MyBatis—实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- 293. Flip Game只翻转一步的加减号翻转游戏
[抄题]: You are playing the following Flip Game with your friend: Given a string that contains only th ...
- Docker学习之路(二)DockerFile详解
Dockerfile是一个镜像的表示,可以通过Dockerfile来描述构建镜像的步骤,并自动构建一个容器 所有的 Dockerfile 命令格式都是: INSTRUCTION arguments 虽 ...
- Linuc bazaar命令
一.简介 Bazaar 是一种强大的新一代源代码控制系统,它能够适用于所有主流操作系统,能够适应任何开发团队的工作模式. 二.安装 1)yum方式 yum install -y bzr 三.教 ...
- Django-restframework25 Pagination(分页)
Django-restframework25 Pagination(分页) 2017年11月11日 15:14:36 敲代码的伪文青 阅读数:1021 标签: restful 更多 个人分类: res ...
- nodelet的理解
1.介绍 nodelet包可以为在相同进程中的多个算法之间实现零拷贝的传输方式. 这个包也提供了实现一个nodelet所需的nodelet基类以及用于实例化nodelet的NodeletLoader类 ...
- File类中的list()和listFiles()方法
list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组 listFiles()方法是返回某个目录下所有文件和目录的绝对路径,返回的是File数组 public class ...
- 【2008nmj】BP二元分类
在人的大脑里有数以万计的神经元,它们之间通过神经突触来连接.用以判断. BP神经网络 MATLAB实现:
- ORCHARD学习教程-介绍
ORCHARD 是什么? Orchard 是由微软公司创建,基于 ASP.NET MVC 技术的免费开源内容管理系统: 可用于建设博客.新闻门户.企业门户.行业网站门户等各种网站 简单易用的后台界面 ...
- Adorner的收集
Adorners Overview https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/adorners-overview ' ...