精华内容
下载资源
问答
  • java get获取地址栏参数乱码问题

    千次阅读 2016-11-01 10:01:40
    地址栏中出现汉字的情况有两种,一种是汉字出现在URL的路径部分,一种是汉字出现在URL的传参的部分,第二种情况的时候必须采用编码后传参,接受时解码的方式完成传参。js中编码有escape(),encodeURI(),...
            地址栏中出现汉字的情况有两种,一种是汉字出现在URL的路径部分,一种是汉字出现在URL的传参的部分,第二种情况的时候必须采用编码后传参,接受时解码的方式完成传参。js中编码有escape(),encodeURI(),encodeURIComponent()三个常用的方法,escape()常常用在提交页面和处理页面的编码格式相同的情况下(比如它们都是GB2312),encodeURI(),encodeURIComponent()的用法基本相同,区别在于encodeURIComponent()也对"?"等特殊字符进行编码。
            一开始遇到中文参数的时候,使用encodeURI()进行了一遍编码,传过去后,发现解码出现问题,于是想到可能是编码方法使用错误,于是使用escape()方法,这时发现解码时抛出isHexDigit异常。借助百度搜索isHexDigit异常,发现原来,是escape()方法造成了异常,同时了解了浏览器传递地址的一些原理,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码,两位两位取出后进行解码,然后再传递给处理页面,然后由处理页面进行再次解码。由此我想到一直使用encodeURI方法是正确的,只是需要使用两次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是把中文编码成%xy的格式,第二次是对%xy中的%进行编码,%籂亥焚酵莳寂锋檄福漏编码成%。整个传参过程大体应该是:提交页面使用encodeURI(encodeURI("中文"))编码,把最后的编码结果%xy传递给处理页面的过程中,浏览器获取URL地址(注意openModelDialog方法,浏览器获取不到参数编码)后解码成%xy,然后把%xy传递给处理页面,处理页面使用URLDecoder.decode(request.getParameter("参数名"),"UTF-8");完成解码。总结:1、汉字出现在URL路径部分的时候不需要编码解码;
    展开全文
  • 今天遇到从url中获取汉字乱码的问题,找了很多资料,到现在还没解决,如下: 问题:tomcat 6.0 的service.xml中加入 URIEncoding="UTF-8",整个项目的编码为UTF-8,jsp文件的编码都为UTF-8,添加了spring的过滤器,...

    今天遇到从url中获取汉字乱码的问题,找了很多资料,到现在还没解决,如下:

    问题:tomcat 6.0 的service.xml中加入 URIEncoding="UTF-8",整个项目的编码为UTF-8,jsp文件的编码都为UTF-8,添加了spring的过滤器,假如在jsp页面加上如下代码且去掉tomcat 6.0 的service.xml中的URLEncoding="UTF-8",则能在页面正确获取url中的汉字,

    Java代码 
    1. <%     
    2.     String str=request.getParameter("action");  
    3.     str=URLEncoder.encode(str,"ISO-8859-1");    //2  
    4.     str=URLDecoder.decode(str, "GBK");  //3  
    5.     out.println(str);  
    6. %>  

    将上面的applet放在jsp页面中,在地址栏中输入:http://localhost:8080/test/?action=在中国,回车,页面显示 ”在中国“ 三个字。

    注意:

    • 假如将 2 处的ISO-8859-1改为UTF-8或者GBK,都不行。
    • 3 处的 GBK 是在我自己的机子上通过的,换成UTF-8乱码,我项目的整体编码是UTF-8,这里视具体情况而定可是问题又来了,当将此页面作为接口,比如采集接口,采集软件提交过来的汉字又不能正常显示在页面上了,2011.07.31,今天,再次修改这篇文章,原来是tomcat的URIEncoding="UTF-8"造成的:URL中的汉字一定是GBK的,Tomcat先将传过来的汉子编码成UTF-8,此时,不管在接受页面怎么转码,都不能解决问题。此问题待解
    展开全文
  • 怎么获取地址里的汉字

    千次阅读 2008-11-27 09:03:00
    怎么获取地址里的汉字论坛上有朋友问:在struts中我要获得从地址栏中输入的汉字怎么做?? 例如:http://localhost:8080/sex.do?status=insertSex&sexName=男&sexId=1 我要获得sexName="男"该怎么做 sexForm中获得...

    怎么获取地址里的汉字

    论坛上有朋友问:

    在struts中我要获得从地址栏中输入的汉字怎么做??
      例如:http://localhost:8080/sex.do?status=insertSex&sexName=男&sexId=1
        我要获得sexName="男"该怎么做
    sexForm中获得的是乱码???

    我用的是strust 1.2..
      想问一下该怎么处理要获得中文的问题~~~~

     

     

    URL方式

    例如:http://website/test1.jsp?act=add&type=苹果&param=%20D%20B

    一般来说我们很少直接在URL里面把参数写成中文,如例子中的"type=苹果"这样传递。如果出现这种情况,在我们的接收参数的页面我们只需要做个简单的转换就可以了。
                代码test1.jsp:(主要部分)

                <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

            <%

                String type = request.getParameter("type");

                String result = new String(type.getBytes("iso-8859-1"), "gb2312");     

                out.println(result); 

          %>

    更普遍的做法,就是对url中的中文字符进行编码,变成类似type=%20D%20B这样的字符。
    代码MyJsp1.jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%@ page import="java.net.*" %>

    <a href='./MyJsp2.jsp?act= <%=URLEncoder.encode("中国人 非常好 =-")%>'>test </a>

    代码MyJsp2.jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%@ page import="java.net.*" %>

    String tempVal = URLDecoder.decode(request.getParameter("act"));
    out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));

    楼主可以参考一下:http://www.qqread.com/jsp/w430436.html 这个博客,我建议使用:
    更普遍的做法,就是对url中的中文字符进行编码,变成类似type=%20D%20B这样的字符。

     

    展开全文
  • 在测试时发现,如果获取的其它参数中有中文汉字,再sendRedirect时出错,原因是地址栏上的中文汉字变成了乱码。  在网上看到说通过URLDecoder.decode(request.getParameter("param1")...

            在项目中有另外一系统请求我们的系统,我们会根据请求传入的入参数再进一步获取其它的参数,然后才sendRedirect到真正的请求上。在测试时发现,如果获取的其它参数中有中文汉字,再sendRedirect时出错,原因是地址栏上的中文汉字变成了乱码。

            在网上看到说通过URLDecoder.decode(request.getParameter("param1"))即可,但由于我这里的参数比较多,且有些参数还是JSON格式的,不能简单的对URL进行URLDecoder.decode处理(因为整个请求中的:、{、}、//都会被编码),正确的做法是只对URL中的中文进行URLDecoder.decode处理。我的处理方法及测试如下:

    import java.io.UnsupportedEncodingException;
    
    public class Main {
    
        public static void main(String[] args) {
            String str = "欢迎光临我的博客iteye,网址http://bijian1013.iteye.com/";
            String resStr = getEncodeStr(str);
            System.out.println(resStr);
        }
    
        private static String getEncodeStr(String str) {
            StringBuffer resultStrBuf = new StringBuffer();
            StringBuffer chineseStrBuf = new StringBuffer();
            try {
                for (int i = 0; i < str.length(); i++) {
                    if ((str.charAt(i) + "").getBytes().length > 1) {
                        chineseStrBuf.append(str.charAt(i));
                    } else {
                        if (chineseStrBuf.length() > 0) {
                            resultStrBuf.append(java.net.URLEncoder.encode(chineseStrBuf.toString(), "UTF-8"));
                            chineseStrBuf.delete(0, chineseStrBuf.length());
                        }
                        resultStrBuf.append(str.charAt(i));
                    }
                }
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return resultStrBuf.toString();
        }
    }

    运行结果:

    %E6%AC%A2%E8%BF%8E%E5%85%89%E4%B8%B4%E6%88%91%E7%9A%84%E5%8D%9A%E5%AE%A2iteye,%E7%BD%91%E5%9D%80http://bijian1013.iteye.com/

     

    附一:Java如何从字符串中取出中文、Java如何从字符串中取出中文和数字,去掉其他字符

    public class Main {
    
        public static void main(String[] args) {
            
          //Java如何从字符串中取出中文
          System.out.println("深圳2015SH".replaceAll("[\\p{ASCII}]",""));
          System.out.println("深圳2015SH".replaceAll("[\\x00-\\x7F]",""));
          
          //Java如何从字符串中取出中文
          String str = "欢迎光临我的博客iteye,网址http://bijian1013.iteye.com/";
          StringBuffer sb = new StringBuffer();
          for (int i = 0; i < str.length(); i++) {
              if ((str.charAt(i)+"").getBytes().length>1) {
                  sb.append(str.charAt(i));
              }
          }
          System.out.println(sb);
          
          //Java如何从字符串中取出中文
          System.out.println("欢迎光临我的博客iteye,网址http://bijian1013.iteye.com/".replaceAll("[^\\u4E00-\\u9FA5]", ""));
          System.out.println("欢迎光临我的博客iteye,网址http://bijian1013.iteye.com/".replaceAll("[\\w]", "").replaceAll("\\p{Punct}", ""));
          
          //Java如何从字符串中取出中文和数字,去掉其他字符
          String str1 = "^2^3da42b3中文sae34科e技b2字符2`~!@#$%^&*()_+-=[]{};':\",.<>/?\\93啊";
          str1 = str1.replaceAll("[^0-9\\u4e00-\\u9fa5]", "");
          System.out.println(str1);
        }
    }

    运行结果:

    深圳
    深圳
    欢迎光临我的博客,网址
    欢迎光临我的博客网址
    欢迎光临我的博客,网址
    23423中文34科技2字符293啊

     

    附二:检查输入的字符串中是否包含中文

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * 检查输入的字符串中是否包含中文
     */
    public class Main {
        
        static String regEx = "[\u4e00-\u9fa5]";
        static Pattern pat = Pattern.compile(regEx);
        
        public static void main(String[] args) {
            String input = "Hell world!";
            System.out.println(isContainsChinese(input));//false
            input = "hello world";
            System.out.println(isContainsChinese(input));//false
            input = ",http://bijian1013.iteye.com/";
            System.out.println(isContainsChinese(input));//false
            input = ",http://bijian1013.iteye.com/";
            System.out.println(isContainsChinese(input));//false
            input = "[]%http://bijian1013.iteye.com/";
            System.out.println(isContainsChinese(input));//false
            input = "【】%http://bijian1013.iteye.com/";
            System.out.println(isContainsChinese(input));//false
            input = "中国http://bijian1013.iteye.com/";
            System.out.println(isContainsChinese(input));//true
        }
        
        public static boolean isContainsChinese(String str) {
            Matcher matcher = pat.matcher(str);
            boolean flg = false;
            if (matcher.find()) {
                flg = true;
            }
            return flg;
        }
    }

    运行结果:

    false
    false
    false
    false
    false
    false
    true
    展开全文
  • (POST请求放在请求体中,而GET请求在浏览器的地址栏中) POST请求乱码问题: 假设这样的场景:在浏览器中有一个表单,我们在表单中输入了中文汉字,在Servlet中的doPost中,我们尝试获取这个参数并进行打印,在...
  • 地址栏中URL:/index.php/Admin/Category/index/r/20160414105610.html?cate_name=美食,(在服务器上)参数的值明明显示的是正常的汉字,但是在后台使用get获取时,显示是经过urlencode编码后的"乱码",第一次遇到这种情况...
  • Java经典编程300例(code)

    千次下载 热门讨论 2013-01-09 10:26:53
    实例262 防止Socket传递汉字乱码 375 实例263 使用Socket传递对象 377 实例264 使用Socket传输图片 379 实例265 使用Socket传输音频 381 实例266 使用Socket传输视频 384 实例267 一个服务器与一个客户端 通信 385 ...
  • 全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到Qt5.13的任何Qt版本,支持mingw、msvc、gcc等编译器,支持任意操作系统比如windows+linux+mac+嵌入式linux等,不乱码,可直接集成到Qt Creator中,和自带的控件一样...
  • 书名:《Java开发实战1200例(第II卷)》(清华大学出版社....实例314 防止Socket传递汉字乱码 495 实例315 使用Socket传递对象 497 实例316 使用Socket传输图片 499 实例317 使用Socket传输音频 501 实例318...
  • 文章管理系统

    2014-12-06 10:19:22
    1.关键字管理的地址栏加入自动换行,防止网址过长造成右侧会没显示 2.列表页导航分页加入超过100分页时,下拉选择自动变成文本框输入,防止下拉项太多而影响速度 3.纠正文章管理因异常栏目信息,而造成页面错误 4....
  • 186.显示器屏幕上有乱码,图片模糊 187.显示器画面抖动 188.显示器屏幕上有水纹状滚动条 189.显示器的指示灯突然变红 190.启动后很长时间才显示画面 191.显示边缘有闪烁的竖条 192.屏幕上有两根细黑线 193.显示器...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    113 <br>5.6 其他应用技巧 114 <br>0189 如何判断年份是否为闰年 114 <br>0190 如何根据年份判断十二生肖 114 <br>0191 如何根据IP地址获取本机域名 115 <br>0192 如何获取“我的文档”系统...
  • 实例122 解决传递汉字丢失或乱码的问题 194 实例123 获取服务器计算机名 195 第2篇 ASP.NET常用控件篇 第5章 常用Web服务器控件 198 5.1 使用控件显示文本 199 实例124 显示密码格式文本 199 实例125 显示长日期...
  • 实例122 解决传递汉字丢失或乱码的问题 194 实例123 获取服务器计算机名 195 第2篇 ASP.NET常用控件篇 第5章 常用Web服务器控件 198 5.1 使用控件显示文本 199 实例124 显示密码格式文本 199 实例125 显示长日期...
  • 实例122 解决传递汉字丢失或乱码的问题 194 实例123 获取服务器计算机名 195 第2篇 ASP.NET常用控件篇 第5章 常用Web服务器控件 198 5.1 使用控件显示文本 199 实例124 显示密码格式文本 199 实例125 显示长日期...
  • 实例075 获取字符串中汉字的个数 实例076 批量替换某一类字符串 实例077 把异常与错误信息显示到窗体中 实例078 从字符串中分离文件路径、文件名及扩展名 实例079 判断手机号的合法性 实例080 用字符串构建器...
  • 实例075 获取字符串中汉字的个数 实例076 批量替换某一类字符串 实例077 把异常与错误信息显示到窗体中 实例078 从字符串中分离文件路径、文件名及扩展名 实例079 判断手机号的合法性 实例080 用字符串构建器...
  • 实例075 获取字符串中汉字的个数 94 实例076 批量替换某一类字符串 95 实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 实例079 判断手机号的合法性 99 实例080 用...
  • 实例075 获取字符串中汉字的个数 94 实例076 批量替换某一类字符串 95 实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 实例079 判断手机号的合法性 99 实例080 用...
  • 实例103 将汉字按音序排序 实例104 按列的编号排序 实例105 从表中随机返回记录 实例106 使用GROUP BY子句实现数据的分组统计 实例107 利用GROUP BY函数实现多表分组统计 4.3 比较大小与逻辑应用 实例108 在查询结果...
  • Java开发实战1200例.第2卷.part3

    热门讨论 2013-05-08 22:46:34
    实例103 将汉字按音序排序 181 实例104 按列的编号排序 182 实例105 从表中随机返回记录 183 实例106 使用GROUP BY子句实现数据的 分组统计 184 实例107 利用GROUP BY函数实现多表分组 统计 185 4.3 比较大小与逻辑...
  • Java开发实战1200例.第2卷.part2

    热门讨论 2013-05-08 22:45:35
    实例103 将汉字按音序排序 181 实例104 按列的编号排序 182 实例105 从表中随机返回记录 183 实例106 使用GROUP BY子句实现数据的 分组统计 184 实例107 利用GROUP BY函数实现多表分组 统计 185 4.3 比较大小与逻辑...
  • Java开发实战1200例.第2卷.part1

    热门讨论 2013-05-08 22:44:13
    实例103 将汉字按音序排序 181 实例104 按列的编号排序 182 实例105 从表中随机返回记录 183 实例106 使用GROUP BY子句实现数据的 分组统计 184 实例107 利用GROUP BY函数实现多表分组 统计 185 4.3 比较大小与逻辑...
  • 易语言 茶凉专用模块

    2010-05-04 12:26:36
    模块名称:茶凉专用模块 作者:茶凉 版本:2.0 本模块可以编程更简单,仅仅用核心支持库编写。 @备注: ...官方QQ群:92716369 ------------------------ -------------------------- ...参数 地址, 整数型, , ...
  • 【查看IP信息】 查看本机LAN局域网的IP地址以及WAN外部网的公共IP地址(需要接入Internet)。 【显示桌面】 快捷的一键式显示桌面,有时桌面图标找不到时特别有用。 【资源管理器】 快捷的打开系统IE资源管理...
  • 【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体...
  • 【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

获取地址栏汉字乱码