java xml类型,在java中获取XML的编码类型

I am parsing XML using DocumentBuilder in java 1.4.

XML has first line as

xml version="1.0" encoding="GBK"

I want to get encoding type of the XML and use it. How can I get "GBK"

Basically i will be making one more XML where i want encoding="GBK" to be retained.

Currently it is getting lost and set to default UTF-8

There are many XML with different encoding I need to read encoding od source and so necessary things.

Please help

解决方案

One way to this works like this

final XMLStreamReader xmlStreamReader = XMLInputFactory.newInstance().createXMLStreamReader( new FileReader( testFile ) );

//running on MS Windows fileEncoding is "CP1251"

String fileEncoding = xmlStreamReader.getEncoding();

//the XML declares UTF-8 so encodingFromXMLDeclaration is "UTF-8"

String encodingFromXMLDeclaration = xmlStreamReader.getCharacterEncodingScheme();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下步骤将string类型XML转为zip格式压缩包并用base64编码: 1. 将string类型XML转为byte数组。 2. 使用Javajava.util.zip.ZipOutputStream类创建一个新的zip压缩包对象,并将byte数组添加到zip压缩包。 3. 将zip压缩包转为byte数组。 4. 使用Javajava.util.Base64类将byte数组转为base64编码的字符串。 以下是示例代码: ```java import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import java.util.Base64; public static String xmlToBase64Zip(String xmlString) throws IOException { // 将string类型XML转为byte数组 byte[] xmlBytes = xmlString.getBytes("UTF-8"); // 创建一个新的zip压缩包对象,并将byte数组添加到zip压缩包 ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (ZipOutputStream zip = new ZipOutputStream(baos)) { ZipEntry entry = new ZipEntry("xmlFile.xml"); zip.putNextEntry(entry); zip.write(xmlBytes); zip.closeEntry(); } // 将zip压缩包转为byte数组 byte[] zipBytes = baos.toByteArray(); // 将byte数组转为base64编码的字符串 String base64String = Base64.getEncoder().encodeToString(zipBytes); return base64String; } ``` 注意:上述代码使用了Javajava.util.zip.ZipOutputStream类来创建zip压缩包对象,并使用了Java 8的java.util.Base64类将byte数组转为base64编码的字符串。如果使用的是Java 7或更早版本,则需要使用其他方式将byte数组转为base64编码的字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值