文档章节

javaScript Unicode字符转换和Pinying4JavaScript.js

IamOkay
 IamOkay
发布于 2015/08/03 16:10
字数 394
阅读 128
收藏 4
一.JavaScript实现汉字转为Unicode

1.通过解编码的方式转换

/*
*js Unicode编码转换
*/ 
var decToHex = function(str) {
    var res=[];
    for(var i=0;i < str.length;i++)
        res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);
    return "\\u"+res.join("\\u");
}
var hexToDec = function(str) {
    str=str.replace(/\\/g,"%");
    return unescape(str);
}
var str=decToHex("decToHex unicode 编码转换");

2.通过Escape方式转换

var decToHex =function(s)
{
  return window.escape(s).replace(/%/ig,'\\');
}
var hexToDec = function(str) {
    str=str.replace(/\\/g,"%");
    return unescape(str);
}

3.还有一种方式是正则替换

var decToHex =function(s)
{
  return s.replace(/^[\u4e00-\u9fa5]+$/ig,function(s){
      return window.escape(s).replace(/%/ig,'\\');
  }).toLowerCase();
}
二.Ajax与服务器通信过程中,JSON包裹对象数据(JSON数据中包含JSON对象)的处理(复杂情况下包含汉字,特殊字符),这种情况下需如下处理

(这里来自真实案例,请注意)

var testStr = "你好,中国!Hello China,2015-12-15,15%,6000¥";
var jsonData = {code:10112,message:{id:'145678812-za-ck11293',content:testStr}}
//1.进行处理,否则在ajax传送过去的对象上,数据会变成 {code:10112,message:object}
var jsonStr = JSON.stringiIfy(jsonData);
//2.处理中文等Unicode字符
var urldata = encodeURI(jsonStr);
//3.这样处理的数据,通常变得杂乱无章。因此有必要使用Base64进行编码
var base64Data = window.atob(url);

$.ajax({
  type: 'POST',
  url: '/projects',
  data: { actionName: 'register',data: base64Data },
  dataType: 'json',
  timeout: 300,
  context: $('body'),
  success: function(data){
       console.dir(arguments);
  },
  error: function(xhr, type){
    alert('Ajax error!')
  }})


三.关于Pinyin4JavaScript

这部分实现主要是把Pinying4Android.jar里面的资源取出来,构建成ES6或者Javascript中的JSON数据来实现,其中用到中文转Unicode,由于时间因素,这部分代码以后提供。。。




© 著作权归作者所有

IamOkay

IamOkay

粉丝 204
博文 483
码字总数 403228
作品 0
海淀
程序员
私信 提问
JS对URL字符串进行编码/解码分析

一、为什么要进行js编码和解码? 只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。 出现的情况: 网址路径中包含汉字...

qq_38055050
2018/05/12
0
0
Python全栈 Web(JavaScript 变量、数据类型)

JavaScript概述: 什么是JavaScript? 简称JS 是一种运行于解释器或执行引擎中的脚本代码 是一种浏览器解释型的语言 主要用来实现页面的交互设计动态效果 JS的组成: 核心语法 ECMAScript 规...

巴黎香榭
2018/09/10
0
0
JavaScript如何正确处理Unicode编码问题!

原文:JavaScript 如何正确处理 Unicode 编码问题! 作者:前端小智 Fundebug经授权转载,版权归原作者所有。 JavaScript 处理 Unicode 的方式至少可以说是令人惊讶的。本文解释了 JavaScri...

Fundebug
01/07
0
0
每一个工程师都要学的安全测试,老板再也不用担心服务器被黑

本文由云+社区发表 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础、XSS基础、编码基础、XSS Payload、XSS攻击防御。 第一部分:漏洞攻防基础知识 XSS属于漏洞攻防,我们要研究它就要了...

腾讯云加社区
2018/12/18
47
0
简单来谈谈Unicode与emoji

什么是Unicode Unicode是国际组织制定的可以容纳世界上 所有文字和符号的字符编码方案,它为每种语言中的每个字符设定了统一并且唯一的编码。 表示一个Unicode的字符时,通常会用“U+”然后紧...

gdutwyg
2018/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

以GPS为例,深入浅出讲解射频接收路径的匹配调试流程

RF接收路径的匹配流程----以GPS为例 调Matching前,至少准备两块板子。 一块完整PCB,有上全部零件 : 一块裸版,完全都没上零件 : 匹配前注意事项—铜管 可能很多人忽略这点,但其实这才是...

demyar
7分钟前
1
0
TI AM570x浮点DSP C66x + ARM Cortex-A15开发板的LCD触摸屏接口、LED指示灯

TL570x-EVM是一款由创龙基于SOM-TL570x核心板设计的开发板,它为用户提供了SOM-TL570x核心板的测试平台,用于快速评估SOM-TL570x核心板的整体性能。 TL570x-EVM底板采用沉金无铅工艺的4层板设...

Tronlong创龙
8分钟前
1
0
docker部署springboot项目

前提条件: 1.可以运行jar包的环境 2.机器上已经安装了docker 3.准备部署的springboot的jar包 4.Dockerfile文件 首先在xshell中连接服务器,然后再创建docker_test,在docker_test下创建jar...

故久呵呵
13分钟前
2
0
MaxCompute问答整理之10月

本文是基于本人对MaxCompute产品的学习进度,再结合开发者社区里面的一些问题,进而整理成文。希望对大家有所帮助。 问题一、DataStudio中是否可以通过shell节点调取MaxCompute sql语句? 不...

一肥仔
13分钟前
1
0
GMAT阅读高速解题6招秘籍分享

在做GMAT阅读题时,你是否曾因为文章内容无聊昏昏欲睡?是否看到第二段就神游不知所云?又是否看完问题选择觉得似乎每个都是正确答案?如果上面这些情况曾经发生在你身上,那么你的阅读方式和心...

bole6
15分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部