`
fengqx
  • 浏览: 99194 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

js解决汉字乱码问题(加码,解码)

 
阅读更多
///字符串加码
function encode(strIn)
{if(strIn ==undefined)return "";
var intLen=strIn.length;
var strOut="";
var strTemp;
var strFlag="";
for(var i=0;i<intLen;i++){
strTemp=strIn.charCodeAt(i);
if (strTemp>255 || strTemp<0){
if (strFlag==""){strFlag="#";
strOut=strOut+"[#"+fillLeftWithZero(strTemp.toString(16),4);
}
else if (strFlag=="~"){
strFlag="#";
strOut=strOut+"#"+fillLeftWithZero(strTemp.toString(16),4);
}
else if (strFlag=="#"){
strOut=strOut+fillLeftWithZero(strTemp.toString(16),4);
}
}
else{
if (strTemp < 48 || (strTemp > 57 && strTemp < 65) || (strTemp > 90 && strTemp < 97) || strTemp > 122){
if (strFlag==""){
strFlag="~";
strOut=strOut+"[~"+fillLeftWithZero(strTemp.toString(16),2);
}
else if (strFlag=="#"){
strFlag="~";
strOut=strOut+"~"+fillLeftWithZero(strTemp.toString(16),2);
}
else if (strFlag=="~"){
strOut=strOut+fillLeftWithZero(strTemp.toString(16),2);
}
}
else{
if (strFlag=="#" || strFlag=="~"){
strFlag="";
strOut=strOut+"]"+strIn.charAt(i);
}
else{
strOut=strOut+strIn.charAt(i);
}
}
}
}
return (strOut);
}


/////字符串解码
function decode(strIn)
{
if(strIn ==undefined)
return "";

var intLen=strIn.length;
var strOut="";
var strTemp;
var strFlag="";

for(var i=0;i<intLen;i++)
{
strTemp=strIn.charAt(i);

if (strTemp=="["){
i++;
strTemp=strIn.charAt(i);
}
if (strTemp=="]"){
strFlag="";
continue;
}
if (strTemp=="~"){
i++;
strFlag="~";
}
if (strTemp=="#"){
i++;
strFlag="#";
}
switch (strFlag){
case "~":{
strTemp=strIn.substring(i,i+2);
strTemp=parseInt(strTemp,16);
strTemp=String.fromCharCode(strTemp);
strOut=strOut+strTemp;
i++;
break;
}
case "#":{
strTemp=strIn.substring(i,i+4);
if (strTemp.toUpperCase()=="FFFF"){
i+=4;
strTemp=strIn.substring(i,i+4);
}
strTemp=parseInt(strTemp,16);
strTemp=String.fromCharCode(strTemp);
strOut=strOut+strTemp;
i+=3;
break;
}
case "":{
strOut=strOut+strTemp;
break;
}
}
}
return (strOut);
}

/////根据长度右边添加0
function fillLeftWithZero(strIn, outLen){
if (typeof(strIn)!="string") return strIn;

for (var i=strIn.length;i<outLen;i++)
strIn="0"+strIn;

return strIn;
}

主要针对用汉字作参数时解决乱码问题
分享到:
评论

相关推荐

    加码解码工具

    好东西~下载下来会用的自然会用,可以把文件进行保护。

    Base64 加码解码器

    在VB(Visual Basic)环境中,实现Base64的加码和解码功能,可以使用内置的`System.Text.Encoding`类和`Convert`类。例如,`Convert.ToBase64String()`函数用于编码,而`Convert.FromBase64String()`用于解码。 ...

    Utf8加码和解码

    Utf8加码和解码

    二维码加码,解码

    生成二维码,解密二维码,但是是别人的代码,解码也有一点点小问题

    C++ [ rapidjson 使用、封装、UT]、[Base64加码及解码]

    1. **JSON基础**:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON数据结构包括对象(键值对)和数组。 2. **Rapidjson解析**:Rapidjson提供了...

    stm32f103读取sd卡和解码jpg图片加码jpeg图片并驱动LCD的keil工程例程

    stm32加码jpg图片的程序,stm32驱动液晶屏的例子,stm32液晶屏例程; stm32读写sd卡和解码jpg图片例程,keil mdk工程,keil 4 keil5都可以打开,编译下载即可, 亲自测试过,可正常使用,打开keil MDK工程,重新编译...

    Quoted-printable 编码介绍、Quoted-printable编码解码转换方法

    为了满足这一要求同时不改变被编码的文本,QP编码结果的每行末尾需要加上软换行符(softlinebreak),即在每行末尾加上一个“=”,但这个字符在解码后不会出现。 6. 一些特定的可打印字符在Quoted-printable编码中...

    asp.net乱码解决方法

     3、直接用Server.UrlEncode和Server.Decode进行加码和解码操作,这种方法对于发送方和接收方都在一个项目中是可行的,现在的问题是,我们要随意去访问别人的系统,所以只能弃用此方法了。  4、采用HttpUtility...

    Zxing Demo

    《Zxing框架在二维码加码解码中的应用》 Zxing,又名“ZXing”(读作“zebra crossing”,意为斑马线),是一个开源的、跨平台的二维码和条形码读取库。它由Google开发并维护,主要用于Android平台,但同时也支持...

    PB的utf-8转换

    PB的utf-8转换,包括加码解码等等 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

    从新手到高手C++全方位学习 代码

    在C++编程语言的学习过程中,从零基础到精通是一个逐步积累和深化理解的过程。本教程以"从新手到高手C++全方位学习 代码 第2章从一个最简短的C++程序讲起"为主题,旨在帮助初学者快速入门,通过实践来掌握C++的基本...

    锁仓顺势加码EA源码

    锁仓顺势加码EA源码知识点总结 一、EA源码概述 锁仓顺势加码EA源码是一种基于MetaTrader平台的自动交易系统,旨在帮助交易者实现自动化交易。该系统具有锁仓顺势加码功能,可以根据市场情况自动平仓和止盈。 二、...

    常见编码解码助手 52专版.zip

    常见编码解码助手是一款强大的编码解码器,编程中常见的编码类型都可以用这款工具,支持的编码类型包括ASCII转义、UTF-8转义,并支持URL转义、HTML转义等功能,同样也可以进行加码,可满足用户的多种编码和解码需求...

    小巧图片加码软件GMASK

    标题中的“小巧图片加码软件GMASK”指的是一个专门用于给图片添加马赛克效果的软件,名为GMASK。这款软件的特点是体积小,占用系统资源少,但功能实用,对于个人用户而言,尤其适用于保护图片中的敏感或私密信息,...

    UrlTool v.2009-4-13

    《UrlTool v.2009-4-13:深入理解URL编码、加码与解码》 在互联网世界中,URL(Uniform Resource Locator)是网页和其他资源的唯一地址,它承载着定位网络资源的重要任务。然而,由于URL中可能包含非ASCII字符或...

    Base64加解码vc++源码

    同时,为了处理不同平台的字节序问题,可能还需要考虑字节顺序转换。 在实际应用中,这个源码可以帮助开发者在C++项目中集成Base64功能,例如在传输二进制数据(如图像或证书)时,可以先将其Base64编码成文本形式...

    加码对冲EA

    加码对冲EA是一种在外汇交易中广泛应用的自动交易策略,通常被称为Expert Advisor(EA),是基于MetaTrader交易平台的一种智能交易系统。这种EA利用了特定的算法和规则来进行买卖操作,旨在实现对冲和加码的策略,以...

    20210405-国泰君安-大众汽车-VOW.US-新能源战略加码,传统巨头加速转型.pdf

    大众汽车(VOW.DF)作为一家历史悠久的汽车制造商,其在新能源战略上的加码以及转型举措,对于整个汽车行业具有重要的示范和引领作用。随着新能源汽车市场的蓬勃发展,大众汽车公司不仅面临着市场竞争的新挑战,也...

    顺势加码非常暴利的ea交易系统

    顺势加码非常暴利的ea交易系统, 调整好参数, 能稳定盈利

    建筑建材行业专题报告:保障房加码,关注节能建材、钢结构、装配式.pdf

    1. **保障性租赁住房政策**:政府对保障性租赁住房的重视程度不断提高,从2020年底到2022年,一系列政策密集出台,旨在解决新市民和青年人的住房问题。这些政策不仅设定了明确的目标,如2022年计划建设筹集240万套...

Global site tag (gtag.js) - Google Analytics