java中 string类型转换成UTF-8

1、测试方法如下:

          public static String toUtf8(String str) {
               return new String(str.getBytes("UTF-8"),"UTF-8"):
         }

     备注说明:
         str.getBytes("UTF-8"); 的意思是以UTF-8的编码取得字节 
         new String(XXX,"UTF-8"); 的意思是以UTF-8的编码生成字符串

Java中,读取ANSI编码的数据并将其转换为UTF-8编码通常涉及以下步骤: 1. 使用InputStream读取文件:首先,你需要通过FileInputStream或BufferedReader等IO流获取包含ANSI编码数据的输入源。 ```java InputStream in = new FileInputStream("path_to_ansi_file"); ``` 2. 创建CharsetDecoder对象:创建一个用于将ANSI转换为UTF-8的CharsetDecoder实例,例如`Charset.forName("Windows-1252")`(假设你的文件是基于Windows ANSI字符集),因为ANSI是一个通用术语,实际可能是某种特定平台的变体。 ```java CharsetDecoder decoder = Charset.forName("Windows-1252").newDecoder(); ``` 3. 编码转换:使用CharsetDecoder的decode方法逐字节解码ANSI数据,并处理可能出现的解码错误。 ```java ByteBuffer byteBuffer = ByteBuffer.allocate(1024); CharBuffer charBuffer = CharBuffer.allocate(1024); while (in.read(byteBuffer.array()) != -1) { byteBuffer.flip(); charBuffer.clear(); try { decoder.decode(byteBuffer, charBuffer, true); } catch (CharacterCodingException e) { // 处理解码错误,可以选择丢弃、替换或记录错误 System.err.println("Decoding error: " + e.getMessage()); } byteBuffer.compact(); // 移动未读缓冲区到开始 // 将解码后的字符添加到目标字符串或其他容器中 String decodedChars = charBuffer.toString(); } ``` 4. 关闭资源:记得关闭InputStream和CharsetDecoder实例,释放系统资源。 ```java in.close(); decoder.close(); ``` 完后,你将得到一个UTF-8编码的字符串。如果需要输出到文件或其他地方,可以继续操作这个UTF-8编码的字符串。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值