参考类似此文
http://tiger-hu.iteye.com/blog/848742
【引用修改自此文】
http://www.cnblogs.com/pencilsoft/archive/2009/04/16/1436872.html
主要思想其实就是第一篇参考文章以及Java调用Java自带bin文件夹下面的工具exe方法
public class Native2Ascii {
private static String java_bin_path = "D:\\Java\\jdk1.6.0_10\\bin";// 存放中文的文本文件
private static String source_file = "E:\\src.txt";
private static String result_file="E:\\result.txt";
public static void main(String[] args) {
String result = fromUnicode(source_file,result_file,"gbk");
System.out.println(result);
}
public static String toUnicode(String destFileName,String result_file) {
StringBuffer tempSb = new StringBuffer();
try {
Process p = Runtime.getRuntime().exec(
java_bin_path + "\\native2ascii.exe " + destFileName+" "+result_file);
InputStreamReader child_in = new InputStreamReader(p
.getInputStream());
int c;
while ((c = child_in.read()) != -1) {
tempSb.append((char) c);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return tempSb.toString();
}
public static String fromUnicode(String destFileName,String result_file,String decode) {
StringBuffer tempSb = new StringBuffer();
try {
Process p = Runtime.getRuntime().exec(
java_bin_path + "\\native2ascii.exe -reverse -encoding " +decode+" "+ destFileName+" "+result_file);
InputStreamReader child_in = new InputStreamReader(p
.getInputStream());
int c;
while ((c = child_in.read()) != -1) {
tempSb.append((char) c);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return tempSb.toString();
}
public static String getJava_bin_path() {
return java_bin_path;
}
public static void setJava_bin_path(String java_bin_path) {
Native2Ascii.java_bin_path = java_bin_path;
}
public static String getSource_file() {
return source_file;
}
public static void setSource_file(String source_file) {
Native2Ascii.source_file = source_file;
}
public static String getResult_file() {
return result_file;
}
public static void setResult_file(String result_file) {
Native2Ascii.result_file = result_file;
}
}
分享到:
相关推荐
•CodeConverter(Java)_Lite.zip----------调用java自带的工具native2ascii.exe进行Unicode转换,该版本不带带jre,需要用户机器上装有jre或者jdk并且配置好JAVA_HOME才能正常使用Unicode转换功能。否则涉及Unicode...
`native2ascii.js`的核心功能是将本地字符转换为`\u`转义序列,这是Java源代码中表示Unicode字符的标准方式。例如,一个中文字符“汉”会被转换为`\u6C49`。这种转换使得非ASCII字符能够在JavaScript字符串中安全地...
•CodeConverter(Java)_Lite.zip----------调用java自带的工具native2ascii.exe进行Unicode转换,该版本不带带jre,需要用户机器上装有jre或者jdk并且配置好JAVA_HOME才能正常使用Unicode转换功能。否则涉及Unicode...
通过对本案例的学习,我们不仅了解了Unicode编码的基本概念及其与汉字之间的关系,还掌握了如何使用JDK自带的native2ascii工具来进行有效的Unicode编码转换操作。希望这些知识能够帮助大家在未来的项目中更加顺利地...
`native2ascii`是Sun Java SDK自带的一个实用程序,它的主要功能是将非Unicode编码的文本文件转换为Unicode编码,或者相反,将Unicode编码转换为其他编码格式。这是因为Java本身默认使用Unicode作为其内部字符编码,...
•CodeConverter(Java)_Lite.zip----------调用java自带的工具native2ascii.exe进行Unicode转换,该版本不带带jre,需要用户机器上装有jre或者jdk并且配置好JAVA_HOME才能正常使用Unicode转换功能。否则涉及Unicode...
Java调用DLL是一种常见的跨语言交互技术,允许Java应用...例如,字符串在Java中是Unicode的,但在C++中可能是ASCII或宽字符。最后,由于跨语言调用,调试可能会变得复杂,因此确保有良好的日志和错误处理机制至关重要。
处理`.properties`文件时,由于Properties类默认使用ISO8859-1编码,所以如果包含汉字,需要使用`native2ascii`工具将其转换为`\uXXXX`格式。 XML文件的读写类似,需要注意XML头部的`...
本篇将深入探讨如何在Java和JNI之间进行字符串转换,这是Android开发中的一个重要知识点。 首先,我们需要了解JNI的基本概念。JNI是Java平台提供的一种接口,允许Java代码和其他语言写的代码进行交互。在Android中...
1. **字符编码与媒体文件**: 在Java中,字符通常以Unicode编码进行处理,而媒体文件如音频、视频等则包含二进制数据。将媒体文件字符化意味着需要将这些二进制数据转换为可读的字符流,以便于在网络上传输或者存储。...
10. **native2ascii**:这个工具用于字符编码转换,将非Unicode编码的文本文件转换为Java工具能够识别的Latin-1或Unicode格式。这对于处理包含特殊字符的国际化问题非常有用。 掌握这些JDK工具的使用,对于Java...
JNI(Java Native Interface)是Java平台的标准组成部分,它允许Java代码和其他语言写的代码进行交互。在本示例中,我们关注的是JNI中的字符串参数传递和返回值处理,这对于那些需要在Java和C/C++之间进行深度集成的...
Java技术中的JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。JNI在很多场景下都是必要的,比如优化性能、访问操作系统特定功能、调用已有的C/C++库等。在这个...
`native2ascii`用于将非Unicode或非Latin1字符的文件转换为Unicode编码的文件,这对于处理包含特殊字符的文本文件非常重要,确保它们在不同系统之间正确传输和显示。 #### serialver:序列版本UID生成器 `...
5. **UTF-16**:使用两个字节表示Unicode字符,能够表示世界上绝大多数语言文字。 6. **UTF-8**:采用变长编码技术,不同类型的字符由1~6个字节组成,更加节省空间。 **2.3 utf-8中的中文编码** - **中文字符在utf...
- native2ascii:用于编码转换,将Unicode编码的中文转换为ASCII编码,或反之。 - javap:反编译class文件,查看Java字节码。 - jdb:Java调试器,用于调试Java程序。 - jps:列出当前运行的Java进程。 - ...
`jchar`是JNI中的一个类型,它对应于Java中的`char`,占据2个字节,通常用来表示Unicode字符。 首先,我们需要定义本地方法,这通常是在Java层的一个类中声明的。例如: ```java public class JniHelper { static...
- `native2ascii`: 将Unicode码转换为ASCII码或反之。 - `javap`: 反编译class文件,查看编译后的字节码。 - `jdb`: Java调试器,用于调试Java程序。 - `jps`: 查看正在运行的Java虚拟机进程的信息。 - `...
为了方便用户进行Unicode编码转换操作,示例中还提供了一些在线工具的链接,比如用于Unicode与中国字符相互转换、Native编码与Unicode转换、以及中文汉字与ASCII码、Unicode编码相互转换的工具。这些在线工具可以...
9. **字符串处理**:Java的字符串是Unicode编码,而C/C++中的字符串通常是ASCII或宽字符。在JNI中处理字符串时,需要进行编码转换。 10. **内存管理**:JNI代码中,Java对象的引用和内存管理需要特别注意,避免内存...