当前位置: 首页 > 知识库问答 >
问题:

java将“UTF-8”字符串放入java.lang.Object crushing

阴高刚
2023-03-14

我有一些代码如下所示。

HashMap<String, Object> hash = new HashMap<String, Object>();
String str = "한UTF-8 #1글";
hash.put("num", 1);
hash.put("str", str);
@RequestMapping(value={"/test"}, headers={"Accept=application/json"} produces={"text/plain; charset=UTF-8"})
public @ResponseBody ResponseEntity<byte[]> test() throws Exception{
HashMap<String, Object> hash = new HashMap<String, Object>();
hash = "*****I put the hashmap which is upper code block here";

Iterator iter = hash.keySet().iterator();
while(iter.hasNext()){
String key = iter.next();
Object val = hash.get(key);
log.info("한UTF-8 String#2글 : [ key : " + " ] [ val : " + val.toString() + " ]");
}
//jackson asl lib for JSON
ObjectMapper om = new ObjectMapper();
return om.writeValueAsBytes(hash);
}

该项目的标准字符集是“UTF-8”。并且所有消息都很好地打印为UTF-8。我猜把UTF-8字符串放入java.lang.Object是压垮UTF-8的原因。

我该怎么解决这个?

我已经试过了:

=在上块中=

=配置=

  • 将消息转换器添加到root-context.xml中,如下所示。
<mvc:annotation-driven>
  <mvc:message-converters>
      <bean class="org.springframework.http.converter.StringHttpMessageConverter">
          <property name="supportedMediaTypes">
              <list>
                  <value>text/html;charset=UTF-8</value>
              </list>
          </property>
      </bean>
  </mvc:message-converters>
</mvc:annotation-driven>

===*条件===

感谢阅读和分享我的问题:D

共有1个答案

弘志勇
2023-03-14

您首先要做的是为此编写一个单元测试:

HashMap<String, Object> hash = new HashMap<String, Object>();
String str = "한UTF-8 #1글";
hash.put("str", str);

ObjectMapper om = new ObjectMapper();
byte[] data = om.writeValueAsBytes(hash);
assertEquals("...", new String(data, "UTF-8"));

如果这个测试有效,那么你的问题一定在别的地方。如果这次测试不合格,其他150万个地方就不用看了。

 类似资料:
  • 问题内容: 我有一个带有“ñ”字符的字符串,并且我有一些问题。我需要将此字符串编码为UTF-8编码。我已经通过这种方式尝试过,但是没有用: 如何将该字符串编码为utf-8? 问题答案: Java中的对象使用无法修改的UTF-16编码。 唯一可以使用不同编码的是。因此,如果你需要UTF-8数据,则需要一个。如果你有一个包含意外数据的,则问题出在较早的地方,该错误地将一些二进制数据错误地转换为a (即

  • 问题内容: 我遇到了这行遗留代码,我试图找出这些遗留代码: 据我了解,它是使用相同的charSet进行编码和解码。 这与以下内容有何不同? 在任何情况下,两条生产线的输出将不同? ps:只是要澄清一下,是的,我知道Joel Spolsky撰写的关于编码 的出色文章! 问题答案: 这可能是很复杂的方式 这缩短了String,而所使用的基础char []则更长。 但是,更具体地说,将检查每个字符是否都

  • 问题内容: 从我的数据库即时通讯获取以下字符串: 它应该说的是: 我试图像这样将其转换为utf-8: 但是仍然是同样的问题。 有任何想法吗? 问题答案: 使用npm中的utf8模块对字符串进行编码/解码。 安装: 在浏览器中: 在Node.js中: API: 编码: 将任何给定的JavaScript字符串(字符串)编码为UTF-8,并返回该字符串的UTF-8编码版本。如果输入字符串包含非标量值(即

  • 问题内容: 如何使用Android解码utf-8字符串?我尝试使用此命令,但输出与输入相同: 问题答案: 字符串不需要编码。它只是一个Unicode字符序列。 要将字符串转换为字节序列时需要进行 编码 。您选择的字符集(UTF-8,cp1255等)确定了Character-> Byte映射。请注意,字符不必转换为单个字节。在大多数字符集中,大多数Unicode字符都转换为至少两个字节。 字符串的编

  • 问题内容: 因此,我有一个字符串数组,所有字符串都使用系统默认的 ANSI 编码,并从SQL数据库中提取。因此,存在256个不同的可能字符字节值(单字节编码)。 有没有一种方法可以使我工作并显示这些字符,而不必在我的所有字符串上使用并最终得到类似的东西? 还是这是JSON的标准? 问题答案: 有没有一种方法可以使json_encode()工作并显示这些字符,而不必在所有字符串上都使用utf8_en

  • 问题内容: 我想将Jackson的内容写成一个字符串,且UTF-8字符写为ASCII(转义Unicode)。 这是一个示例方法: 默认情况下,此输出: 我想要输出的是: 我该怎么做? 问题答案: 您应该启用JsonGenerator功能,该功能控制非ASCII字符的转义。这是一个例子: 输出为: