-
快速把eclipse中Java文件由UTF-8转成GBK,且不乱码
2020-12-29 18:28:55快速把eclipse中Java文件由UTF-8转成GBK,且不乱码 java文件开始是utf-8的,但是需要转为GBK。如果直接转,那么里面的文字都是乱码,如下图 那么要如何做呢? 首先,把整个项目右键–》properties,改为GBK 第二,... -
java中文乱码问题GBK->UTF-8
2015-05-04 13:26:45最好能通过转化的方式将系统B接收到的乱码转回为正常的GBK格式,有这样的方法吗? ps:系统A通过http请求到系统B,系统B通过request 获取到系统A传过来的报文。 系统B是个java web工程,接收报文的serverlet使用了... -
tomcat编码配置gbk_tomcat为utf8编码,解析gbk编码的URL请求,中文乱码处理
2020-12-19 05:07:33项目中tomcat设置为utf8解码,当对外的url接口(如ReceiveAction)接收到gbk编码请求时候会自动被tomcat解码为utf8,此时中文直接request.getParameter("content")出来就是乱码,无法直接转换回gbk,怎么转换都是乱码...项目中tomcat设置为utf8解码,当对外的url接口(如ReceiveAction)接收到gbk编码请求时候会自动被tomcat解码为utf8,
此时中文直接request.getParameter("content")出来就是乱码,无法直接转换回gbk,怎么转换都是乱码。
解决方法:通过requset.getQueryString() 来获取到 %D6%D0%B9%FA 再urldecode 下就得到了 正确的中文了
此类,就是基于通过自己解析http的queryString和postdata来处理乱码问题的
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
/**
* 项目中tomcat设置为utf8解码,当对外的url接口(如ReceiveAction)接收到gbk编码请求时候会自动被tomcat解码为utf8,
* 此时中文直接request.getParameter("content")出来就是乱码,无法直接转换回gbk,怎么转换都是乱码。
*
* 解决方法:通过requset.getQueryString() 来获取到 %D6%D0%B9%FA 再urldecode 下就得到了 正确的中文了
* 此类,就是基于通过自己解析http的queryString和postdata来处理乱码问题的
*
*/
public class HttpRequestReader {
Hashtable pairs = new Hashtable();
/**
* RawParameterReader constructor comment.
*/
public HttpRequestReader(HttpServletRequest request, String encoding)
throws IOException {
super();
parse(request.getQueryString(), encoding);
parse(request.getReader().readLine(), encoding);
}
public static String decode(String s, String encoding) throws Exception {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '+':
sb.append(' ');
break;
case '%':
try {
sb.append((char) Integer.parseInt(
s.substring(i + 1, i + 3), 16));
} catch (NumberFormatException e) {
throw new IllegalArgumentException();
}
i += 2;
break;
default:
sb.append(c);
break;
}
}
// Undo conversion to external encoding
String result = sb.toString();
byte[] inputBytes = result.getBytes("8859_1");
return new String(inputBytes, encoding);
}
/**
* Insert the method's description here. Creation date: (2001-2-4 17:30:59)
*
* @return java.lang.String
* @param name
* java.lang.String
*/
public String getParameter(String name) {
if (pairs == null || !pairs.containsKey(name))
return null;
return (String) (((ArrayList) pairs.get(name)).get(0));
}
/**
* Insert the method's description here. Creation date: (2001-2-4 17:28:17)
*
* @return java.util.Enumeration
*/
public Enumeration getParameterNames() {
if (pairs == null)
return null;
return pairs.keys();
}
/**
* Insert the method's description here. Creation date: (2001-2-4 17:33:40)
*
* @return java.lang.String[]
* @param name
* java.lang.String
*/
public String[] getParameterValues(String name) {
if (pairs == null || !pairs.containsKey(name))
return null;
ArrayList al = (ArrayList) pairs.get(name);
String[] values = new String[al.size()];
for (int i = 0; i < values.length; i++)
values= (String) al.get(i);
return values;
}
/**
* Insert the method's description here. Creation date: (2001-2-4 20:34:37)
*
* @param urlenc
* java.lang.String
*/
private void parse(String urlenc, String encoding)
throws java.io.IOException {
if (urlenc == null)
return;
StringTokenizer tok = new StringTokenizer(urlenc, "&");
try {
while (tok.hasMoreTokens()) {
String aPair = tok.nextToken();
int pos = aPair.indexOf("=");
String name = null;
String value = null;
if (pos != -1) {
name = decode(aPair.substring(0, pos), encoding);
value = decode(aPair.substring(pos + 1), encoding);
} else {
name = aPair;
value = "";
}
if (pairs.containsKey(name)) {
ArrayList values = (ArrayList) pairs.get(name);
values.add(value);
} else {
ArrayList values = new ArrayList();
values.add(value);
pairs.put(name, values);
}
}
} catch (Exception e) {
throw new java.io.IOException(e.getMessage());
}
}
}
然后action或jsp中使用如下代码获取到的就是正常的中文了
HttpRequestReader paramReader = new HttpRequestReader(request, "gbk");
String name = paramReader.getParameter("name");
System.out.println(name);
参见:http://bbs.csdn.net/topics/390360298?page=1#post-393608658
-
tomcat设置为UTF-8,解析GBK编码的UTL请求,中文乱码处理
2015-11-19 10:39:50tomcat为utf8编码,解析gbk编码的URL请求,中文乱码处理 项目中tomcat设置为utf8解码,当对外的url接口(如ReceiveAction)接收到gbk编码请求时候会自动被tomcat解码为utf8, 此时中文直接request.getParameter(...tomcat为utf8编码,解析gbk编码的URL请求,中文乱码处理
项目中tomcat设置为utf8解码,当对外的url接口(如ReceiveAction)接收到gbk编码请求时候会自动被tomcat解码为utf8,
此时中文直接request.getParameter("content")出来就是乱码,无法直接转换回gbk,怎么转换都是乱码。
解决方法:通过requset.getQueryString() 来获取到 %D6%D0%B9%FA 再urldecode 下就得到了 正确的中文了例:URL:http://127.0.0.1:8080/ValueAddPlane/clc/notify?orderstate=2&portorderid=2015101510449194&tickets=%c6%eb%c4%cb%ca%a2%2c7848501352120参数中tickets为“齐乃盛,2c7848501352120”controller中处理String reqStr = request.getQueryString(); //得到的字符串是 “orderstate=2&portorderid=2015101510449194&tickets=齐乃盛,2c7848501352120“String decodeReqStr = URLDecoder.decode(reqStr, "GBK");String[] reqArry = decodeReqStr.split("&");Map<String, String> reqMap = new HashMap<String, String>();for (String reqItem : reqArry) {String[] reqItemArray = reqItem.split("=");reqMap.put(reqItemArray[0], reqItemArray[1]);} -
tomcat为utf8编码,解析gbk编码的URL请求,中文乱码处理
2013-07-10 11:46:31[color=red] 项目中tomcat设置为utf8解码,当对外的url接口(如ReceiveAction)接收到gbk编码请求时候会自动被tomcat解码为utf8, 此时中文直接request.getParameter("content")出来就是乱码,无法直接...[color=red] 项目中tomcat设置为utf8解码,当对外的url接口(如ReceiveAction)接收到gbk编码请求时候会自动被tomcat解码为utf8,
此时中文直接request.getParameter("content")出来就是乱码,无法直接转换回gbk,怎么转换都是乱码。
解决方法:通过requset.getQueryString() 来获取到 %D6%D0%B9%FA 再urldecode 下就得到了 正确的中文了
此类,就是基于通过自己解析http的queryString和postdata来处理乱码问题的
[/color]
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
/**
* 项目中tomcat设置为utf8解码,当对外的url接口(如ReceiveAction)接收到gbk编码请求时候会自动被tomcat解码为utf8,
* 此时中文直接request.getParameter("content")出来就是乱码,无法直接转换回gbk,怎么转换都是乱码。
*
* 解决方法:通过requset.getQueryString() 来获取到 %D6%D0%B9%FA 再urldecode 下就得到了 正确的中文了
* 此类,就是基于通过自己解析http的queryString和postdata来处理乱码问题的
*
*/
public class HttpRequestReader {
Hashtable pairs = new Hashtable();
/**
* RawParameterReader constructor comment.
*/
public HttpRequestReader(HttpServletRequest request, String encoding)
throws IOException {
super();
parse(request.getQueryString(), encoding);
parse(request.getReader().readLine(), encoding);
}
public static String decode(String s, String encoding) throws Exception {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '+':
sb.append(' ');
break;
case '%':
try {
sb.append((char) Integer.parseInt(
s.substring(i + 1, i + 3), 16));
} catch (NumberFormatException e) {
throw new IllegalArgumentException();
}
i += 2;
break;
default:
sb.append(c);
break;
}
}
// Undo conversion to external encoding
String result = sb.toString();
byte[] inputBytes = result.getBytes("8859_1");
return new String(inputBytes, encoding);
}
/**
* Insert the method's description here. Creation date: (2001-2-4 17:30:59)
*
* @return java.lang.String
* @param name
* java.lang.String
*/
public String getParameter(String name) {
if (pairs == null || !pairs.containsKey(name))
return null;
return (String) (((ArrayList) pairs.get(name)).get(0));
}
/**
* Insert the method's description here. Creation date: (2001-2-4 17:28:17)
*
* @return java.util.Enumeration
*/
public Enumeration getParameterNames() {
if (pairs == null)
return null;
return pairs.keys();
}
/**
* Insert the method's description here. Creation date: (2001-2-4 17:33:40)
*
* @return java.lang.String[]
* @param name
* java.lang.String
*/
public String[] getParameterValues(String name) {
if (pairs == null || !pairs.containsKey(name))
return null;
ArrayList al = (ArrayList) pairs.get(name);
String[] values = new String[al.size()];
for (int i = 0; i < values.length; i++)
values[i] = (String) al.get(i);
return values;
}
/**
* Insert the method's description here. Creation date: (2001-2-4 20:34:37)
*
* @param urlenc
* java.lang.String
*/
private void parse(String urlenc, String encoding)
throws java.io.IOException {
if (urlenc == null)
return;
StringTokenizer tok = new StringTokenizer(urlenc, "&");
try {
while (tok.hasMoreTokens()) {
String aPair = tok.nextToken();
int pos = aPair.indexOf("=");
String name = null;
String value = null;
if (pos != -1) {
name = decode(aPair.substring(0, pos), encoding);
value = decode(aPair.substring(pos + 1), encoding);
} else {
name = aPair;
value = "";
}
if (pairs.containsKey(name)) {
ArrayList values = (ArrayList) pairs.get(name);
values.add(value);
} else {
ArrayList values = new ArrayList();
values.add(value);
pairs.put(name, values);
}
}
} catch (Exception e) {
throw new java.io.IOException(e.getMessage());
}
}
}
[color=red]然后action或jsp中使用如下代码获取到的就是正常的中文了[/color]
HttpRequestReader paramReader = new HttpRequestReader(request, "gbk");
String name = paramReader.getParameter("name");
System.out.println(name);
参见:[url]http://bbs.csdn.net/topics/390360298?page=1#post-393608658[/url] -
java用UTF-8编码读取GBK编码的文本文件,将读取内容用GBK编码写文件,生成的文本文件为什么还是乱码?
2020-05-21 10:35:591、如题。...2、在nodepad中先用ansi编码编写中文,然后转成UTF-8后乱码,但转回ansi又能正常显示。这和java先用错误编码读取,在用正确编码写文件的差别在哪呢。 有点迷惑,希望大神解答,谢谢! -
根据乱码猜出编码,用Java转换回原编码
2020-06-10 13:49:13根据乱码猜出编码 String source = "中文... Charset utf8Charset = Charset.forName("utf-8"); Charset iso88591Charset = Charset.forName("iso-8859-1"); Charset defaultCharset = Charset.defaultCharset(); -
解决vscode的终端中文乱码的方法
2020-07-23 21:04:490.我们首先需要明白为什么vscode这个终端为什么会有中文乱码 因为,你在使用vscode时,比如你新建了一个文件,你会发现右下角的编码方式默认...转回之前的话题,由于vscode的编码和终端的编码它是不一样的,所以他自然 -
TP5 上传文件 中文乱码问题
2018-11-27 13:56:00在原文件file类中找到move方法 ...返回文件名的时候 需要把gbk的编码转回utf8,不然可能会报错。 参考链接http://www.thinkphp.cn/topic/51891.html http://www.thinkphp.cn/topic/13461.html 转载于:h... -
关于idea项目在Android Studio中出现中文乱码的处理
2019-02-15 15:39:26一、问题描述 当Eclipse使用GBK编码,而Intellij IDEA...2、选择重新加载(如果选择Convert会转换失败,可能出现永久乱码,无法转回的情况) 3、中文注释显示成功 4、在右下角点击GBK 5、选择转换成UTF-8 ... -
csv用excel打开呈现中文乱码的超棒方法
2019-09-27 14:43:06但是用python读取ANSI格式的时候不太爽,需要把encoding设置为’gbk’挺麻烦,所以还是希望读取的csv文件为utf-8,这样Pandas.read_csv()就不用了再指定encoding编码方式了。 所以这里有一种两全的方法:先通过... -
【Window】解决window的bat脚本执行出现中文乱码的问题
2021-02-09 09:54:03原因: 批处理文件,是以ANSI编码方式。若以别的方式(如UTF-8)编辑了批处理,转换成ANSI格式即可,正常创建的文件的格式都是utf-8的。 解决: 1.使用windows自带的记事本编辑...chcp 936 可以换回默认的GBK chcp 4 -
Intellij IDEA使用(八)—— 解决Intellij IDEA导入Eclipse项目出现的中文注释乱码问题
2017-12-13 23:37:23一、问题描述 当Eclipse使用GBK编码,而Intellij IDEA使用UTF-8...2、选择重新加载(如果选择Convert会转换失败,可能出现永久乱码,无法转回的情况) 3、中文注释显示成功 4、在右下角点击GBK 5、选择转换成U -
linux 文件编码格式转换-转
2016-01-16 11:28:52比较繁琐的方法是在windows下用程序把内容转换为utf-8编码格式的,但是相当麻烦,而且遇到一个文件转一回。下面介绍一下,在Linux中如何一劳永逸的解决这个问题,查看文件的编码及如何进行对文件进行编码转换。 -
ajax乱码解决汇总
2013-01-07 10:49:37用AJAX 来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把 resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字... -
Linux入职基础-2.9_文件编码转换
2018-03-03 13:18:24一般来说简体中文版Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以我们国人经常遇到文件乱码,这时需要知道如何进行编码转换。一:本机环境linux系统的系统语言设置为:[root@localhost test... -
url中文字符编码格式识别
2019-09-17 08:34:53url如携带中文字符常见存在gbk和urf-8两种格式,这段时间做数据分析时经常乱码,今天想起由于utf-8的格式是3个字符的,所以考虑把中文字符解码成utf-8,然后再转回utf-8,如果和原先字符串匹配,则可以认为是utf-8的... -
linux和windows双系统互拷文件乱码问题
2012-08-18 09:41:45比较繁琐的方法是在windows下用程序把内容转换为utf-8编码格式的,但是相当麻烦,而且遇到一个文件转一回。下面介绍一下,在Linux中如何一劳永逸的解决这个问题,查看文件的编码及如何进行对文件进行编码转换。 -
linux和windows系统互拷文件乱码问题
2010-07-27 10:01:00比较繁琐的方法是在windows下用程序把内容转换为utf-8编码格式的,但是相当麻烦,而且遇到一个文件转一回。下面介绍一下,在Linux中如何一劳永逸的解决这个问题,查看文件的编码及如何进行对文件进行编码转换。... -
eclipse乱码+开源转码插件+批量操作
2012-09-05 10:45:37问题描述:我们项目开发都统一采用utf-8格式编码,但昨天研发部的一个产品要集成进来,他们是用gbk编码的,如果强行将文件设置成utf-8肯定不行,中文全乱了。在jsp里面用 ctrl+H 进行搜索替换也不行,中文也是显示不... -
Windows- 改变cmd控制台默认显示编码
2018-02-04 01:40:00在中国的电脑会要求兼容gbk编码,所以微软进入中国市场也顺应中国的要求,其中最明显的就是在cmd上默认的显示就是GBK 。当开发人员在运行一些有打印中文的程序时,...chcp 936可以将cmd显示编码转回GBK 转载于:... -
convmv安装包
2020-12-13 21:30:24比较繁琐的方法是在windows下用程序把内容转换为utf-8编码格式的,但是相当麻烦,而且遇到一个文件转一回。下面介绍一下,在Linux中如何一劳永逸的解决这个问题,查看文件的编码及如何进行对文件进行编码转换。 如何... -
-
最近突发奇想用java去请求python写的接口结果出问题了
2018-05-16 14:32:41if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是UTF-8 String s2 = encode; return s2; } } catch (Exception exception2) { } encode = "GBK"; try { if (str.equals... -
-
易语言程序免安装版下载
2011-04-07 09:28:50取错误文本()”返回的文本是UTF-8编码(应是GB18030编码)。 -------------------------------------------------------------------------------- 易语言5.0 相对于易语言4.x更新说明(2010/02/01): 增加... -
PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1
2016-06-14 01:25:19实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...