JSP环境下的Ajax乱码问题解决方法

AJAX传递中文字符串时必须把中文字符串编码成unicode,一般会用到JS的自带函数escape().不过找到了更好的函数来确决中文字符转换成unicode编码的函数
 
function uniencode(text)   
{   
    text = escape(text.toString()).replace(/\+/g, "%2B");   
    var matches = text.match(/(%([0-9A-F]{2}))/gi);   
    if (matches)   
    {   
        for (var matchid = 0; matchid < matches.length; matchid++)   
        {   
            var code = matches[matchid].substring(1,3);   
            if (parseInt(code, 16) >= 128)   
            {   
                text = text.replace(matches[matchid], ‘%u00‘ + code);   
            }   
        }   
    }   
    text = text.replace(‘%25‘, ‘%u0025‘);   
    
    return text;   

 
当然服务器端要对编码过的字符串进行第二次转码.把字符串转换成UTF-8编码.
 
function convert_int_to_utf8($intval)   
{   
    $intvalintval = intval($intval);   
    switch ($intval)   
    {   
        // 1 byte, 7 bits   
        case 0:   
            return chr(0);   
        case ($intval & 0x7F):   
            return chr($intval);   
    
        // 2 bytes, 11 bits   
        case ($intval & 0x7FF):   
            return chr(0xC0 | (($intval >> 6) & 0x1F)) .   
                chr(0x80 | ($intval & 0x3F));   
    
        // 3 bytes, 16 bits   
        case ($intval & 0xFFFF):   
            return chr(0xE0 | (($intval >> 12) & 0x0F)) .   
                chr(0x80 | (($intval >> 6) & 0x3F)) .   
                chr (0x80 | ($intval & 0x3F));   
    
        // 4 bytes, 21 bits   
        case ($intval & 0x1FFFFF):   
            return chr(0xF0 | ($intval >> 18)) .   
                chr(0x80 | (($intval >> 12) & 0x3F)) .   
                chr(0x80 | (($intval >> 6) & 0x3F)) .   
                chr(0x80 | ($intval & 0x3F));   
    }   
}

时间: 2024-08-07 21:20:51

JSP环境下的Ajax乱码问题解决方法的相关文章

soapUI参数中文乱码问题解决方法&amp;soap UI工具进行web接口测试

soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文的,如FangSong 可能方案2: 如果响应报文有乱码,可尝试: file-preferences-http settings,不勾选response compression 注意:前两种修改都要将乱码窗口重新打开才生效. 可能方案3: 编辑soapui.bat文件,在 set JAVA_OPTS

Zip文件中文乱码问题解决方法(MAC-&gt;Windows)

前言: 最近收到的ZIP交互原型,打开查看中文一堆乱码.主要是产品都是高大上啊,用的都是MAC,咱酷毙用的Windows,话说安卓APP,你用MAC搞啥啊.可恨的压缩用的是zip,不是rar之类的.为了咱用Windows开发及测试的屌丝,分享下解决方法.如你高在上,用的MAC,请跳过本文. 目录: 1.问题 2.解决方法 1.问题 现象: a.ZIP文件,360压缩3.1正式版查看.解压中文为乱码. b.ZIP文件,Winrar 3.7压缩查看.解压中文为乱码. 2.解决方法 方法一:安装新版本

【转】asp.net Cookie值中文乱码问题解决方法

来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqiang.blog.163.com/blog/#m=0 ============================================================================== cookie中怎么保存中文 在用cookie保存用户名的时候,发现cookie值不能存中文

WingIDE中文乱码问题解决方法

WingIDE中文乱码问题解决方法 安装完WingIDE后,首次运行python脚本时,若脚本中含有UTF-8中文,在Debug I/O输出框中,全部变成了乱码. 这时其实我们设置下WingIDE的编码方式为UTF-8即可. 具体的方法如下: 依次选择Edit->Preferences ->Debugger ->I/O,将其中的Encoding相关编码都改为UTF-8即可. 具体见下图: 来自为知笔记(Wiz)

Java中FTPClient上传中文目录、中文文件名乱码问题解决方法【好用】

转: Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录名及文件名中的中文显示为“??”. 原因: FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码. 解决方案: 1.将中文的目录或文件名转为iso-8859-1编码的字符.参考代码: 复制代码 代码如下: String name="目录名或文件名"; name=

Linux中文显示乱码问题解决方法(编码查看及转换)

Linux中文显示乱码问题解决方法(编码查看及转换) 1,示例 图中名为一个.sql文件的一段内容,是一个数据库文件.其在windows中打开显示正常,在Linux中,中文部分显示为乱码. 注意:这个与数据库乱码的情况不同,属于文件内容的乱码. 2,分析 Linux系统与windows系统在编码上有显著的差别.Windows中的文件的格式默认是GBK(gb2312),而Linux系统中文件的格式默认是UTF-8.这两个系统就好比是中国和日本.文件就好比是一个人,如果要在另外的国家居住就要办理居住

zabbix中文乱码问题解决方法(Zabbix 2.2.3)

我把zabbix安装完成后,调整为中文界面,出现乱码. 原因:因为没有中文字体,没有设置显示字体为中文. 解决方法(网络整理收集): 1.获取一个字体文件,上传至zabbixServer的web目录fonts文件夹(/data/www/zabbix/fonts), Windows → 控制面板 → 字体 命名为小写字母 2.修改配置文件,/www/zabbix/include/defines.inc.php //define('ZBX_FONT_NAME', 'DejaVuSans'); def

LoadRunner中文乱码问题解决方法

LoadRunner中文乱码问题解决方法 前段时间在录制,增强,整合LoadRunner脚本,期间两次遇到了中文乱码问题.在此记录一下中文乱码问题的解决办法. 一.录制回放中文乱码 我录制登陆的脚本,用户名中出现中文,回放的时候总是提示登陆失败.如下图: 图1 LR回放中文乱码 解决中文乱码可以在录制的时候在Virtual User Gen的 Tools->Recoding Options -> Advanced -> Support charset -> UTF-8.重新录制后中

Windows环境下打开PHP Mb_String的方法

1.确保你的Windows/system32下有php_mbstring.dll这个文件,没有就从你Php安装目录extensions里拷入Windows/system32里面. 2.在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到 ;extension=php_mbstring.dll 然后将前面的;号去掉,打开对组件的支持 3.重启PHP服务(如果不会你可重新启一下计算机) Windows环境下打开PHP Mb_String的方法,布布扣,bubuko.c