我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串

发布时间:2023年12月21日

在Java中,你可以使用java.nio.charset.Charset类和java.nio.ByteBuffer类来转换字符串的编码。以下是一个例子,将字符串从UTF-8转换为ISO-8859-1:

import java.nio.ByteBuffer; ?
import java.nio.charset.Charset; ?
??
public class Main { ?
? ? public static void main(String[] args) { ?
? ? ? ? String originalString = "测试"; ?// 一个UTF-8编码的字符串 ?
? ? ? ? Charset utf8 = Charset.forName("UTF-8"); ?
? ? ? ? Charset iso88591 = Charset.forName("ISO-8859-1"); ?
??
? ? ? ? ByteBuffer inputBuffer = utf8.encode(originalString); ?
? ? ? ? ByteBuffer outputBuffer = iso88591.encode(inputBuffer); ?
? ? ? ? byte[] outputArray = outputBuffer.array(); ?
? ? ? ? ??
? ? ? ? String outputString = new String(outputArray, iso88591); ?
? ? ? ? System.out.println(outputString); ?// 输出ISO-8859-1编码的字符串 ?
? ? } ?
}

这段代码首先将原始字符串从UTF-8编码转换为字节缓冲区,然后将该缓冲区从UTF-8编码转换为ISO-8859-1编码。最后,它将转换后的字节缓冲区再次转换为字符串。这样,你就可以得到一个ISO-8859-1编码的字符串。

比较简易的写法如下

public String translate(String str){?
String tempStr = "";?
try{?
tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");?
tempStr = tempStr.trim();?
}catch (Exception e){?
System.err.println(e.getMessage());?
}?
return tempStr;?
}
?

文章来源:https://blog.csdn.net/zz_ll9023/article/details/135046003
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。