「java读取ansi」java读取按钮

博主:adminadmin 2022-11-27 09:57:10 62

本篇文章给大家谈谈java读取ansi,以及java读取按钮对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java中如何将gbk装换为ansi

对于java,在字符集间进行转换时比较常用的功能,尤其在web应用中。

首先我们要先了解一些知识点:

一、关键技术点:

1、当前流行的字符编码格式有:US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、UTF-16、GBK、GB2312等,其中GBK、GB2312是专门处理中文编码的。

2、String的getBytes方法用于按指定编码获取字符串的字节数组,参数指定了解码格式,如果没有指定解码格式,则按系统默认编码格式。

3、String的“String(bytes[] bs, String charset)”构造方法用于把字节数组按指定的格式组合成一个字符串对象

二、下面是一个完整的例子,包括了你提问中的gbk转ascii,同时也提供了一些其他字符集间的转码方式,可留存备查:

public class ChangeCharset {

/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */

public static final String US_ASCII = "US-ASCII";

/** ISO拉丁字母表 No.1,也叫做ISO-LATIN-1 */

public static final String ISO_8859_1 = "ISO-8859-1";

/** 8 位 UCS 转换格式 */

public static final String UTF_8 = "UTF-8";

/** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 */

public static final String UTF_16BE = "UTF-16BE";

/** 16 位 UCS 转换格式,Litter Endian(最高地址存放地位字节)字节顺序 */

public static final String UTF_16LE = "UTF-16LE";

/** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 */

public static final String UTF_16 = "UTF-16";

/** 中文超大字符集 **/

public static final String GBK = "GBK";

public static final String GB2312 = "GB2312";

/** 将字符编码转换成US-ASCII码 */

public String toASCII(String str) throws UnsupportedEncodingException {

return this.changeCharset(str, US_ASCII);

}

/** 将字符编码转换成ISO-8859-1 */

public String toISO_8859_1(String str) throws UnsupportedEncodingException {

return this.changeCharset(str, ISO_8859_1);

}

/** 将字符编码转换成UTF-8 */

public String toUTF_8(String str) throws UnsupportedEncodingException {

return this.changeCharset(str, UTF_8);

}

/** 将字符编码转换成UTF-16BE */

public String toUTF_16BE(String str) throws UnsupportedEncodingException{

return this.changeCharset(str, UTF_16BE);

}

/** 将字符编码转换成UTF-16LE */

public String toUTF_16LE(String str) throws UnsupportedEncodingException {

return this.changeCharset(str, UTF_16LE);

}

/** 将字符编码转换成UTF-16 */

public String toUTF_16(String str) throws UnsupportedEncodingException {

return this.changeCharset(str, UTF_16);

}

/** 将字符编码转换成GBK */

public String toGBK(String str) throws UnsupportedEncodingException {

return this.changeCharset(str, GBK);

}

/** 将字符编码转换成GB2312 */

public String toGB2312(String str) throws UnsupportedEncodingException {

return this.changeCharset(str,GB2312);

}

/**

* 字符串编码转换的实现方法

* @param str 待转换的字符串

* @param newCharset 目标编码

*/

public String changeCharset(String str, String newCharset) throws UnsupportedEncodingException {

if(str != null) {

//用默认字符编码解码字符串。与系统相关,中文windows默认为GB2312

byte[] bs = str.getBytes();

return new String(bs, newCharset); //用新的字符编码生成字符串

}

return null;

}

/**

* 字符串编码转换的实现方法

* @param str 待转换的字符串

* @param oldCharset 源字符集

* @param newCharset 目标字符集

*/

public String changeCharset(String str, String oldCharset, String newCharset) throws UnsupportedEncodingException {

if(str != null) {

//用源字符编码解码字符串

byte[] bs = str.getBytes(oldCharset);

return new String(bs, newCharset);

}

return null;

}

public static void main(String[] args) throws UnsupportedEncodingException {

ChangeCharset test = new ChangeCharset();

String str = "This is a 中文的 String!";

System.out.println("str:" + str);

String gbk = test.toGBK(str);

System.out.println("转换成GBK码:" + gbk);

System.out.println();

String ascii = test.toASCII(str);

System.out.println("转换成US-ASCII:" + ascii);

System.out.println();

String iso88591 = test.toISO_8859_1(str);

System.out.println("转换成ISO-8859-1码:" + iso88591);

System.out.println();

gbk = test.changeCharset(iso88591, ISO_8859_1, GBK);

System.out.println("再把ISO-8859-1码的字符串转换成GBK码:" + gbk);

System.out.println();

String utf8 = test.toUTF_8(str);

System.out.println();

System.out.println("转换成UTF-8码:" + utf8);

String utf16be = test.toUTF_16BE(str);

System.out.println("转换成UTF-16BE码:" + utf16be);

gbk = test.changeCharset(utf16be, UTF_16BE, GBK);

System.out.println("再把UTF-16BE编码的字符转换成GBK码:" + gbk);

System.out.println();

String utf16le = test.toUTF_16LE(str);

System.out.println("转换成UTF-16LE码:" + utf16le);

gbk = test.changeCharset(utf16le, UTF_16LE, GBK);

System.out.println("再把UTF-16LE编码的字符串转换成GBK码:" + gbk);

System.out.println();

String utf16 = test.toUTF_16(str);

System.out.println("转换成UTF-16码:" + utf16);

String gb2312 = test.changeCharset(utf16, UTF_16, GB2312);

System.out.println("再把UTF-16编码的字符串转换成GB2312码:" + gb2312);

}

}

〈java〉怎么精确判断读取的任意文本的编码格式?utf-i8, unicode,ansi等

new String(a.getBytes("ISO-8859-1"),"GB2312")

以单字节编码方式获取字符串流, 然后转中文格式,或者

new String(a.getBytes("ISO-8859-1"),"UTF-8")

GBK是中国的解析字符标准,UTF-8是世界标准

jar文件如何从utf-8转ansi?

功能:转换ANSI【JAVA中GBK编码】编码的.java源文件为UTF-8格式,未处理异常,运行前确认目录存在,且原编码格式为ANSI

*

* @author bwgang

*/

package bwgang;

import java.io.*;

import java.util.Vector;

public class AnsiToUtf8 {

public static void main(String[] args) throws UnsupportedEncodingException, IOException {

ReadFileName tmp=new ReadFileName();

VectorString vec=tmp.FileNameOftype("E:\\workspace\\Interface_JAVA\\src", ".java");

for (int i=0;ivec.size(); i++){

System.out.println(vec.get(i));

change(vec.get(i));

}

}

public static void change(String filepath) throws UnsupportedEncodingException, IOException{

BufferedReader buf = null;

OutputStreamWriter pw=null;

String str = null;

String allstr="";

//用于输入换行符的字节码

byte[] c=new byte[2];

c[0]=0x0d;

c[1]=0x0a;

String t=new String(c);

buf=new BufferedReader(new InputStreamReader(new FileInputStream(filepath), "GBK"));

while((str = buf.readLine()) != null){

allstr=allstr+str+t;

}

buf.close();

pw =new OutputStreamWriter(new FileOutputStream(filepath),"UTF-8");

pw.write(allstr);

pw.close();

}

}

class ReadFileName {

//存储遍历获取的所有文件名

private VectorString filelist = new VectorString();

//遍历指定路径下的所有文件

//以ArrayList存储于filelist中

private void RefreshFileList(String strpath) {

File dir = new File(strpath);

File[] files = dir.listFiles();

if (files == null)

return;

for (int i = 0; i files.length; i++) {

if (files[i].isDirectory()) {

RefreshFileList(files[i].getAbsolutePath());

} else {

//String strFileName = files[i].getAbsolutePath().toLowerCase();

filelist.add(files[i].getAbsolutePath());

}

}

}

//过滤当前目录下的指定后缀名的文件

//返回Vector

public VectorString FileNameOftype(String strpath2,String filetype){

String strfilename=new String();

VectorString filelistofjava= new VectorString();

//读取指定路径下的所有文件

RefreshFileList(strpath2);

for (int i = 0; i filelist.size(); i++) {

strfilename=filelist.get(i).toString();

strfilename=strfilename.substring(strfilename.length()-5, strfilename.length());

if (strfilename.equals(filetype)) {

filelistofjava.add(filelist.get(i));

}

}

return filelistofjava;

}

}

java中编码与解码分别指什么?

java中编码:URLEncoder.encode(strUri,"utf-8");

java中解码码:URLDecoder.decode(strUri,"utf-8");

java编码和解码        

流读取文件,具有转换编码功能的有:OutputStreamWriter和InputStreamReader,

构造器有如:

InputStreamReader(InputStream in, String charsetName)

创建使用指定字符集的 InputStreamReader。

OutputStreamWriter(OutputStream out, String charsetName)

创建使用指定字符集的 OutputStreamWriter。

处理字符串编码问题:

重新对获取的字符串进行编码:Byte[] bytes = str.getBytes(String encodeCharsetNam);

重新对bytes进行解码,创建新的字符串对象:str = new String(Byte[] bytes,String decodeCharsetName);

一般结合使用:str = new String(str.getBytes(String encodeCharsetName),String decodeCharsetName);

例如:resultName=new String(username.getBytes("ISO-8859-1"),"UTF-8");

还可以加入判断:

if(!Charset.forName("gbk").newEncoder().canEncode(str)){str = new Strin(str.getBytes("ISO-8859-1"),"UTF-8");}else{str = new String(str.getBytes("ISO-8859-1"),"gbk");}

处理请求参数传递编码问题:

java中编码:URLEncoder.encode(strUri,"utf-8");

java中解码码:URLDecoder.decode(strUri,"utf-8");

js中编码:encodeURIComponent(strUri);encodeURI(strUri);escape(str);

js中解码:decodeURIComponent(strUri);decodeURI(strUri);unescape(str);

补充概念:

URI组件:主机、端口、路径、查询参数、片段等。

URI组件分隔符::/?#[]@,冒号用于分隔协议和主机,/用于分隔主机和 路径,?用于分隔路径和查询参数,用于分隔多个查询参数等。

URI中的不安全字符或保留字符: ! * ‘ ( ) ; : @ = + $ , / ? # [ ] 他们具有特殊作用,例如上面的分隔作用。

URI允许出现的字符:只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符,其他字符均需要经过编码之后才能出现在Url中,比如使用保留字符的原意,而不是特殊作用。

js向java/jsp的编码与解码:

js中编码:encodeURI(encodeURI(strUri));decodeURIComponent(decodeURIComponent(strUri));

java/jsp中解码: java.net.URLDecoder.decode(strUri,"UTF-8");

js中编码两次的问题:如果使用一次编码,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码值,两位两位取出后进行解码。

然后再传递给处理页面,然后由处理页面进行再次解码,这样前面就缺少了一次编码过程,所以前面需要连续两次编码。

怎样用Java读取TXT文本乱码解决方案

默认新建的txt文件的编码为ANSI

把txt文件重新另存为时选择编码为与编辑器IED的编码一致,比如我Intellij IDEA的编辑器右下角显示为 utf-8,然后把要读取的txt文件另存为的时候编码选项选择utf-8,再次运行程序时,就能显示中文。

java读取txt文件时候出现乱码

乱码是因为编解码不匹配造成的。

请重新打开并保存txt文件,保存时选择编码方式为:ANSI。如果使用别的文本编辑器,保存内容时请选择GBK或GB2312。

java读取ansi的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java读取按钮、java读取ansi的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。