gpt4 book ai didi

java - 字符是否在字符集中? Java 中 Web 服务的验证

转载 作者:行者123 更新时间:2023-12-02 06:36:50 25 4
gpt4 key购买 nike

目前我想通过以下方式实现字符集验证:

  1. (XML) 消息将使用给定字符集或不使用给定字符集发送到 Web 服务。
  2. Webservice 获取消息并将其存储在字符串中,该字符串为 UTF-16,并且不会对任何字符进行任何更改。
  3. 创建另一个字符串,为其提供发送消息时最初指定的字符集。假设是 ISO-8859-1。
  4. 比较两个字符串。如果它们相等:消息不包含字符集中不存在的任何字符。如果不相等:在这种情况下,因为假设原始消息中存在欧元符号 '€',则给出异常(exception)。

我的问题:有更好的方法吗?

最佳答案

CharsetEncoder e=Charset.forName("ISO-8859-1").newEncoder();
// tell that we want an exception
e.onUnmappableCharacter(CodingErrorAction.REPORT);
// this will pass
e.encode(CharBuffer.wrap("hello iso latin 1"));
// this will throw
e.encode(CharBuffer.wrap("\u20ac is a non-latin-1 character"));

CharsetEncoder e=Charset.forName("ISO-8859-1").newEncoder();
// this will pass
if(!e.canEncode("hello iso latin 1"))
throw new CharacterCodingException();
// this will throw
if(!e.canEncode("\u20ac is a non-latin-1 character"))
throw new CharacterCodingException();

但是你应该问自己为什么需要这个。 XML 文件可以使用 &#…; 实体表示任何 unicode 字符。让 XML 库来处理这个问题。

关于java - 字符是否在字符集中? Java 中 Web 服务的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19561923/

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