「java后台转码」java实现文件转码
今天给各位分享java后台转码的知识,其中也会对java实现文件转码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java转码出现乱码
- 2、java如何把string转为utf-8
- 3、浏览器get请求到java后台的值是乱码
- 4、前台传过来的SQL语句到java后台的问题,空格变成了 %20 请问怎么转码
- 5、jsp用escape().replace()转码,java后台解码
- 6、java转码问题
java转码出现乱码
在后台java代码中加以下代码:
String yourword = request.getParameter("yourword");
country = new String(coyourwordetBytes("ISO-8859-1"),"GB2312");
或者:
request.setCharacterEncoding("utf-8")
java如何把string转为utf-8
java不同编码之间进行转换,都需要使用unicode作为中转。
String str = "任意字符串";
str = new String(str.getBytes("gbk"),"utf-8");
备注说明:
str.getBytes("UTF-8"); 意思是以UTF-8的编码取得字节
new String(XXX,"UTF-8"); 意思是以UTF-8的编码生成字符串
举例:
public static String getUTF8XMLString(String xml) {
// A StringBuffer Object
StringBuffer sb = new StringBuffer();
sb.append(xml);
String xmString = "";
String xmlUTF8="";
try {
xmString = new String(sb.toString().getBytes("UTF-8"));
xmlUTF8 = URLEncoder.encode(xmString, "UTF-8");
System.out.println("utf-8 编码:" + xmlUTF8) ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return to String Formed
return xmlUTF8;
扩展资料:
UTF-8编码规则:
如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。
实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。
Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。
参考资料来源:百度百科:UTF-8
浏览器get请求到java后台的值是乱码
编码问题首先检查编码和解码是否一致。看下你的jsp是否编码设置了utf-8,默认是iso-8859-1,
然后就是解码的时候的编码,在你的servlet或者controller中检查request和response是否设置了编码,一般是request.setCharacterEncoding("utf-8");response.set...
如果都设置了的话,post发送数据应该是不会乱码的。get发送数据乱码,是因为你的jsp中设置的编码utf-8没有生效在get请求下,解决方案两种:1、修改服务器中的默认编码,
在tomcat安装目录下的conf/server.xml中,有如下的配置:
Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/可以设置端口
这里呢,也可以设置另外一个跟上述编码问题有关的参数信息:URIEncoding,该配置决定了使用get请求通过浏览器地址栏访问tomcat时的编码方式,默认的编码方式使ISO8859-1,这一点我们可以从官网文档() 获悉:
URIEncoding:This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
知道了这点,接下来就简单了,我们可以这样配置,则上述代码中,就不需要再从ISO8859-1转为UTF-8了:
URIEncoding="UTF-8"
就是改成这样: Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/
即可。
或者使用后台手动进行解码:
String s=new String(str.getbyte("iso-8859-1"),"utf-8");
先解码后编码。
如果嫌每次这样麻烦,可以写过滤器拦截你的get清秀将request中的parameter转换编码
前台传过来的SQL语句到java后台的问题,空格变成了 %20 请问怎么转码
我还头一回看见往后台传sql语句的,这代码写起来也是醉了,醉的一塌糊涂。
用URLDecoder解个码试试吧。
jsp用escape().replace()转码,java后台解码
使用js先转码
var str = encodeURI(encodeURI(str);
java解码
String str = URLDecoder.decode(str, "utf-8");
不管是汉字,还是特殊字符都没问题
java转码问题
呵呵,看我这个,是本人原创。不管你是任何编码都可以解决,唯一的缺点是效率稍微低了点(不过比楼上那个要快)。
思路:
1.首先在jsp页面即客户端用JavaScript将汉字处理成asc码
2.服务端再将asc码还原成原有的字符
JavaScript转换代码:
var s=document.getElementById("text").value;
var t="";
//将汉字转换成ASCII码,然后在服务器端里再根据ASCII码转换成相应的字符
for(i=0;is.length;i++){
t+=s.charCodeAt(i)+" ";//将字符转换成相应的ASCII码并用空格隔开;
}
java服务端还原:
String param=request.getParameter("param");
StringBuffer buf=new StringBuffer("");
String[] ss = param.split(" ");
for (int i = 0; i ss.length; i++) {
char c = (char) Integer.parseInt(ss[i].trim());
buf.append(c);
}
System.out.println("还原后的字符是:"+buf.toString());
----------------------
如果你再把转换后的asc码再加个数字或者减个数字就是一个简单的加密,O(∩_∩)O~,希望对你有所帮助
关于java后台转码和java实现文件转码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。