gpt4 book ai didi

java - Java中如何将不支持的字符转换为html实体

转载 作者:行者123 更新时间:2023-12-01 19:24:53 24 4
gpt4 key购买 nike

某些字符不被某些字符集支持,所以下面的测试失败。我想使用 html 实体仅对那些不支持的字符进行编码。如何,在java中?

public void testWriter() throws IOException{
String c = "\u00A9";
String encoding = "gb2312";
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
Writer writer = new BufferedWriter(new OutputStreamWriter(outStream, encoding));
writer.write(c);
writer.close();
String result = new String(outStream.toByteArray(), encoding);
assertEquals(c, result);
}

最佳答案

我不确定我理解这个问题,但这样的事情可能会有所帮助:

import java.nio.charset.CharsetEncoder;

...

StringBuilder buf = new StringBuilder(c.length());
CharsetEncoder enc = Charset.forName("gb2312");
for (int idx = 0; idx < c.length(); ++idx) {
char ch = c.charAt(idx);
if (enc.canEncode(ch))
buf.append(ch);
else {
buf.append("&#");
buf.append((int) ch);
buf.append(';');
}
}
String result = buf.toString();

此代码并不健壮,因为它不处理基本多语言平面之外的字符。但是迭代 String 中的代码点,并使用 CharsetEncodercanEncode(CharSequence) 方法,您应该能够处理任何字符。

关于java - Java中如何将不支持的字符转换为html实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1760766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com