Java页面中文编码要转换两次encodeURI

1.js文件中使用encodeURI()方法。

login_name = encodeURI(encodeURI(login_name));

2.action中URLDecoder解码

loginName = java.net.URLDecoder.decode(loginName,"UTF-8");

java页面中文编码要转换两次,因为提交Java默认解码一次这样后台接的还是乱码,一般这问题本地好像不出现上路服务器就有了要注意~~

时间: 2024-10-04 15:09:05

Java页面中文编码要转换两次encodeURI的相关文章

URL编码与两次encodeURI

当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致乱码. encodeURI函数采用UTF-8对URL进行编码,所以如果服务器在进行解码时使用的是其他的编码方式就会出现乱码,默认的服务器配置的解码字符集都不是UTF-8,所以大部分情况下地址栏提交中文查询参数时会产生乱码:针对这种情况,可以连续使用两次encodeURI在客户端(主要指浏览器)对非英文字符进行编码,然后在服务端使用java.ne

java中调用kettle转换文件

java中调用kettle转换文件 通过命令行也可以调用,然后java中调用命令行代码也可以:这样没有和java代码逻辑无缝集成.本文说明kettle5.1中如果通过其他API和java代码无缝集成:网上大多数资料都是低版本的,在kettle5.x中已经不能运行. 1.       需要哪些jar文件 以kettle开头的是必须,上图最下面三个也要:红色框中的两个是我测试转换用到的,分别是生成UUID和文件. 要是少了jar文件,运行程序一定报错,大家根据错误到kettle安装目录LIB中找相应

JAVA基本数据类型及其转换

Java语言是一种强类型语言.这意味着每个变量都必须有一个声明好的类型.Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型.Java另外还提供大数字对象,但它不是Java的数据类型. 1.整数: 定义:没有小数部分的数字,负数是允许的. 种类:Java提供四种整数类型: byte 1个字节(8bit) -128到127(-27~27-1)  默认为0 ,如 byte b=28; short 2个字节(16bit) -32,768到32,767(-

java 16进制转换10进制

public static String toHexString2(byte[] b) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < b.length; ++i) { buffer.append(toHexString2(b[i])); } return buffer.toString(); } public static String toHexString2(byte b) { char[] buffer =

Java整数和字符串转换

字符串转换整数: 虽然有类似的Integer.parseInt(),但是笔试面试明显不会如此: 转字符串可以考虑为: 1.单个字符的转换 2.权值 如:从前往后依次扫描,则每次扫描一个字符  前面数值*10: 如345,扫描3,再3*10+4,再34*10+5............ 从后往前扫描类似处理: class ParsInt{ public static void main(String[] args) { // TODO, add your application code Syst

java 程序执行输出有两种简单方式

java 程序执行输出有两种简单方式: 1. System.out.println("需要输出的内容"): 该方法可参看运行一个简单的Java程序 结果图: 2. System.out.print("需要输出的内容"): 1 public class HelloWorld 2 { 3 //Java程序的入口方法,程序将从这里开始运行 4 public static void main(String[] args) 5 { 6 //向控制台打印一条语句 7 Syste

由“Java中一个字符占两个字节”引起

起因 Java中一个字符占两个字节,这和C/C++稍有区别.在C/C++中我们可以通过sizeof运算符方便地知道某个变量类型或对象的大小,那在Java中又如何? 问题出现 Java为什么没有提供sizeof运算符? 要回答这个问题,我们可以从另一个角度来看,那就是为什么C/C++中提供sizeof运算符.这就让人忍不住想到C/C++和Java在内存管理上的区别. 在C中,内存分配和释放的任务交给了程序员,当我们尝试用malloc为某个对象分配一块堆内存时,一个无法逃避的问题是,这个即将被创建的

Java中Arrays类的两个方法:deepEquals和equals

deepEquals和equals是Java中Arrays类的两个静态方法,可是它们之间有什么样的区别呢? 代码一. import java.util.Arrays; public class Test { public static void main(String[] args) { String[][] name1 = {{ "G","a","o" },{ "H","u","a",

java中设置代理的两种方式

1 前言 有时候我们的程序中要提供可以使用代理访问网络,代理的方式包括http.https.ftp.socks代理.比如在IE浏览器设置代理. 那我们在我们的java程序中使用代理呢,有如下两种方式.直接上代码. 2 采用设置系统属性 ? 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 import jav