怎么 知道 java字符串 编码格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么 知道 java字符串 编码格式相关的知识,希望对你有一定的参考价值。

参考技术A 这样的测试方法是不正确的。getBytes(charset)是解码,new
String(byte[],
charset)是编码。new
String(str.getBytes(charset),charset)是解码再编码,无论charset是什么编码格式,返回的字符串内容原始str是一致,因此equals方法都是返回true,达不到测试字符串编码格式的目的。个人观点:正确的测试姿势应该是这样的:
String charset ="xxx"; //假定编码格式
String str = "中文";
boolean flag = str.equals(new String(str.getBytes(),charset));flag为true则表明str的编码格式是假定的编码格式。其中说明str.getBytes()该方法就是按其自身编码格式去解码。其自身编码格式跟你的操作系统编码格式或你使用的IDE设置的文件的Text
file
encoding有关。
参考技术B 一般采用一种编码方式解码之后再编码,如果和原来的一样,那么就是说这个是这个编码方式。具体实现方法是
String
code="GB2312";//编码方式
String
str="测试"
;
//是你要判断的字符串
boolean
flag
=
str.equals(new
String(str.getBytes(code),
code))
如果返回的是true
,就说明是这种编码,你可以采用很多种编码循环测试

在JAVA中如果字符串被改变了编码格式,该怎么样将它还原回来呢?

例如:
String fileName = "你好.xls";
String newname = new String(fileName.getBytes("UTF-8"),"gb2312");
得到的newname = "浣�ソ.xls";
怎样将乱码的newname还原成原来的字符串呢?
这个是struts2文件上传乱码问题,我不想去改配置文件,取得的文件名乱码能否在action方法中恢复正常,要是不行再考虑编码统一问题。
PS:页面是utf-8,后台是gbk的,取得的乱码和上面转码后的结果一样
能不要说些废话么,我只想知道java有没有能把改了编码格式的字符串再改回来,我确定字符串由utf-8转码成了gb2312,所以想在方法中能把它再转码回来。

在myeclipse里面修改:你要修改的文件(夹)→右键→properties→Text file encoding→other→选择你要的字符集就可以了。或者剪切出来粘贴到普通文本中然再粘贴回去也可能会好

你去看看这个问题吧,那都是struts设置你的字符集http://zhidao.baidu.com/question/441516106.html

如果是servlet简单了
request.setCharacterEncoding("gb2312");//请求字符集
response.setContentType("text/html;charset=gb2312");//响应字符集
或者你自己百度搜索设置Struts更有针对性
参考技术A UTF-8 在装换成 gb2312 的是,信息已经丢失了,不可能在正常的转换回去的
只能通过设置正确的编码方式来 获取 正确的文件内容本回答被提问者和网友采纳
参考技术B notepad 粘贴出来改编码
editplus 貌似也行...............
参考技术C 有个叫什么encoding的方法。你查查API吧具体忘记了 参考技术D 你是用的eclipse吗 ,实在不行就完全卸载了重新再装吧

以上是关于怎么 知道 java字符串 编码格式的主要内容,如果未能解决你的问题,请参考以下文章

java怎么查看一段中文是啥编码格式

编码gbk的不可映射字符要怎么解决

Java 修改编码格式的几种方式

java 怎么输入输出中文,我写的代码输出会乱码

cmd显示编码gbk不可映射字符

java怎么把utf-8的字符串转换为gb2312格式