中文字符编码转换成中文 昨天大概因为另存时改编码了,用记事本写完东西保存时所有中文全部变成\uxxxx格式了并且只要一保存文档开就会添个\uFEFF想写段代码给它恢复回中文,求相关方法 求指导 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用jdk提供的工具 native2ascii 小日本在ECLIPSE下有个propertitesEditer的插件,在propertites里写中文是会把中文转换成ascii编码。是不是你的环境有这个插件啊另,不知道你保存的是什么文件。。 谢谢昂很好很强大源文件前面几行:\uFEFFname22233comljsflAltova XMLSpy 2011 Enterprise\u662FXML\u5F00\u53D1\u73AF\u5883\u7684\u884C\u4E1A\u6807\u51C6\uFF0C\u5B83\u63D0\u4F9B\u9876\u7EA7XML\u7F16\u8F91\u5668, \u6A21\u5F0F\u8BBE\u8BA1\u5668, \u7F16\u7801\u4EA7\u751F\u5668, \u8F6C\u6362\u5668, \u8C03\u8BD5\u5668, \u6548\u80FD\u8C03\u8BD5\u5668, \u7ED9XSLT, XQuery, WSDL, SOAP, DBs, Visual Studio, Eclipse\u548C\u66F4\u591A\u7684\u652F\u6301.结果:C:\Users\hp>native2ascii -reverse C:\Users\hp\Desktop\Start\1Temporary\1_二单元\HTML\1009.txt\uFEFFname22233comljsflAltova XMLSpy 2011 Enterprise是XML开发环境的行业标准,它提供顶级XML编辑器, 模式设计器, 编码产生器, 转换器, 调试器,效能调试器, 给XSLT, XQuery, WSDL, SOAP, DBs, Visual Studio, Eclipse和更多的支持. 先查找所有的\u替换为""然后读出字符串,用下面的工具转换为中文,再写入 试试import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import javax.swing.JFileChooser;import javax.swing.JOptionPane;public class TestIO { public static void main(String[] args)throws IOException { String src = fileToString(); byte[] bytes = new byte[src.length() / 2]; for (int i = 0; i < bytes.length; i++) { bytes[i] = (byte)Integer.parseInt(src.substring(2 * i , 2 * i + 2),16); } String s = null; try { s = new String(bytes,"utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } stringToFile(s); } // ////////////////////////////////////////////////////////////////////////////////////////////////////// public static void stringToFile(String sourceString) { PrintWriter pw = null; try { JFileChooser jFileChooser = new JFileChooser(); javax.swing.filechooser.FileFilter fileFilter = new javax.swing.filechooser.FileFilter() { public boolean accept(File file) { if (file.isDirectory()) return true; String fileName = file.getName(); if (fileName.toUpperCase().endsWith("TXT")) return true; return false; } public String getDescription() { return "保存为文本文件"; } };// 建立一个过滤文件类型的过滤器(对话框中正确显示文件),是否启用过滤器决定于下面两句话 // jFileChooser.addChoosableFileFilter(fileFilter); // jFileChooser.setFileFilter(fileFilter); int returnValue = jFileChooser.showSaveDialog(null); File fileOfSave = null;// 保存文件句柄 if (returnValue == javax.swing.JFileChooser.APPROVE_OPTION) { fileOfSave = jFileChooser.getSelectedFile();// 获得文件句柄,文件是否存在还未知 } if(fileOfSave == null) return; String fileNameOfSave = fileOfSave.getName();// 返回输入的文件名 // 检查文件名是否符合要求,这一步暂时省略...................................... if (fileOfSave.exists() && !isAgree("该文件已经存在,确定要覆盖吗?")) return; else fileOfSave.createNewFile(); pw = new PrintWriter(fileOfSave); pw.print(sourceString); pw.flush(); } catch (IOException e) { throw new RuntimeException(e); } finally { if (pw != null) pw.close(); } } // ////////////////////////////////////////////////////////////////////////////////////////////////////// public static String fileToString() { StringBuilder sb = new StringBuilder(); JFileChooser jFileChooser = new JFileChooser(); javax.swing.filechooser.FileFilter fileFilter = new javax.swing.filechooser.FileFilter() { public boolean accept(File file) { if (file.isDirectory()) return true; String fileName = file.getName(); if (fileName.toUpperCase().endsWith("TXT")) return true; return false; } public String getDescription() { return "读取文本文件"; } }; // 建立一个过滤文件类型的过滤器(对话框中正确显示文件),是否启用过滤器决定于下面两句话 // jFileChooser.addChoosableFileFilter(fileFilter); // jFileChooser.setFileFilter(fileFilter); int returnValue = jFileChooser.showOpenDialog(null); if (returnValue == JFileChooser.APPROVE_OPTION) { File file = jFileChooser.getSelectedFile(); if (!file.exists()) { prompt("文件不存在"); return null; } // 检查文件名是否符合要求,这一步暂时省略...................................... BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); String string; while ((string = br.readLine()) != null) { sb.append(string); sb.append("\r\n"); } } catch (IOException e) { throw new RuntimeException(e); } finally { if (br != null) try { br.close(); } catch (IOException e) { throw new RuntimeException(e); } } } return sb.toString(); } public static boolean isAgree(String hint) { int returnValue = javax.swing.JOptionPane.showConfirmDialog(null, hint); if (returnValue == javax.swing.JOptionPane.YES_OPTION) return true; else return false; } public static int prompt(String promptMessage) { return JOptionPane.showConfirmDialog(null, promptMessage, "友情提示", JOptionPane.WARNING_MESSAGE); } // /////////////////////////////////////////////////////////////////////////////////////////////////////// } bytes[i] = (byte)Integer.parseInt(src.substring(2 * i , 2 * i + 2),16);只把2位16进制数字换成ASCII对应的字符了,你默认都只是两位的ASCII值了 [求助]如何比较高效的访问远程数据库? 为什么this.init()调用的是已经被覆盖了的子类的init()了??? 大家看看这样的 字符串怎么删除? 在屏幕上输出一个"圆"的程序,请教高手 建了个群,欢迎JAVA爱好者加入 748053 书上的一个问题 求助,应该不难的问题~~~ 用JAVA调用ARJ程序后怎么样在JAVA程序中执行ARJ的命令???? 大家常用Java的那一个工具开发? 关于DB2数据库的连接.为什么总说NO suitable driver. 如何在LINUX中特定的文件夹下创建一个txt文件? java参数调用:
很好很强大
源文件前面几行:\uFEFFname22233
comljsfl
Altova XMLSpy 2011 Enterprise\u662FXML\u5F00\u53D1\u73AF\u5883\u7684\u884C\u4E1A\u6807\u51C6\uFF0C\u5B83\u63D0\u4F9B\u9876\u7EA7XML\u7F16\u8F91\u5668,
\u6A21\u5F0F\u8BBE\u8BA1\u5668, \u7F16\u7801\u4EA7\u751F\u5668, \u8F6C\u6362\u5668, \u8C03\u8BD5\u5668,
\u6548\u80FD\u8C03\u8BD5\u5668, \u7ED9XSLT, XQuery, WSDL, SOAP, DBs, Visual Studio, Eclipse\u548C\u66F4\u591A\u7684\u652F\u6301.结果:C:\Users\hp>native2ascii -reverse C:\Users\hp\Desktop\Start\1Temporary\1_二单元\
HTML\1009.txt
\uFEFFname22233
comljsfl
Altova XMLSpy 2011 Enterprise是XML开发环境的行业标准,它提供顶级XML编辑器,
模式设计器, 编码产生器, 转换器, 调试器,
效能调试器, 给XSLT, XQuery, WSDL, SOAP, DBs, Visual Studio, Eclipse和更多的支持.
然后读出字符串,用下面的工具转换为中文,再写入 试试
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;import javax.swing.JFileChooser;
import javax.swing.JOptionPane;public class TestIO {
public static void main(String[] args)throws IOException {
String src = fileToString();
byte[] bytes = new byte[src.length() / 2];
for (int i = 0; i < bytes.length; i++) {
bytes[i] = (byte)Integer.parseInt(src.substring(2 * i , 2 * i + 2),16);
}
String s = null;
try {
s = new String(bytes,"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
stringToFile(s);
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////// public static void stringToFile(String sourceString) {
PrintWriter pw = null;
try {
JFileChooser jFileChooser = new JFileChooser();
javax.swing.filechooser.FileFilter fileFilter = new javax.swing.filechooser.FileFilter() {
public boolean accept(File file) {
if (file.isDirectory())
return true;
String fileName = file.getName();
if (fileName.toUpperCase().endsWith("TXT"))
return true;
return false;
} public String getDescription() {
return "保存为文本文件";
}
};// 建立一个过滤文件类型的过滤器(对话框中正确显示文件),是否启用过滤器决定于下面两句话
// jFileChooser.addChoosableFileFilter(fileFilter);
// jFileChooser.setFileFilter(fileFilter);
int returnValue = jFileChooser.showSaveDialog(null);
File fileOfSave = null;// 保存文件句柄
if (returnValue == javax.swing.JFileChooser.APPROVE_OPTION) {
fileOfSave = jFileChooser.getSelectedFile();// 获得文件句柄,文件是否存在还未知
}
if(fileOfSave == null) return;
String fileNameOfSave = fileOfSave.getName();// 返回输入的文件名
// 检查文件名是否符合要求,这一步暂时省略......................................
if (fileOfSave.exists() && !isAgree("该文件已经存在,确定要覆盖吗?"))
return;
else
fileOfSave.createNewFile();
pw = new PrintWriter(fileOfSave);
pw.print(sourceString);
pw.flush();
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (pw != null)
pw.close();
}
} // //////////////////////////////////////////////////////////////////////////////////////////////////////
public static String fileToString() {
StringBuilder sb = new StringBuilder();
JFileChooser jFileChooser = new JFileChooser();
javax.swing.filechooser.FileFilter fileFilter = new javax.swing.filechooser.FileFilter() {
public boolean accept(File file) {
if (file.isDirectory())
return true;
String fileName = file.getName();
if (fileName.toUpperCase().endsWith("TXT"))
return true;
return false;
} public String getDescription() {
return "读取文本文件";
}
};
// 建立一个过滤文件类型的过滤器(对话框中正确显示文件),是否启用过滤器决定于下面两句话
// jFileChooser.addChoosableFileFilter(fileFilter);
// jFileChooser.setFileFilter(fileFilter);
int returnValue = jFileChooser.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION) {
File file = jFileChooser.getSelectedFile();
if (!file.exists()) {
prompt("文件不存在");
return null;
}
// 检查文件名是否符合要求,这一步暂时省略......................................
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file)); String string;
while ((string = br.readLine()) != null) {
sb.append(string);
sb.append("\r\n");
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (br != null)
try {
br.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
return sb.toString();
} public static boolean isAgree(String hint) {
int returnValue = javax.swing.JOptionPane.showConfirmDialog(null, hint);
if (returnValue == javax.swing.JOptionPane.YES_OPTION)
return true;
else
return false;
} public static int prompt(String promptMessage) {
return JOptionPane.showConfirmDialog(null, promptMessage, "友情提示",
JOptionPane.WARNING_MESSAGE);
}
// ///////////////////////////////////////////////////////////////////////////////////////////////////////
}