只有在Java

时间:2017-08-09 18:37:55

标签: java encoding utf-8

我有一个字符串s,它从数据库接收一个值。根据数据库所在的服务器,该值是否为UTF-8编码,我无法控制。

我的问题是,当该值不是s时,我需要找到一种只用URLEncoder.encode(s, "UTF-8")编码字符串UTF-8的值的方法,否则它会给我一些不需要的字符

我无法使用juniversalchardet来检测值的编码。 我应该如何处理以确保我只在需要时进行编码并获得正确的字符串值?

1 个答案:

答案 0 :(得分:1)

如果Strings包含%20(或通常为%dd,其中dd为十六进制值00-FF),则为URL Encoded。简而言之,它逃脱了“不安全”的字符,这些字符可能无法安全地包含在URL(以及其他一些地方)中。要反过来,您需要使用URLDecoder

与处理字符转换时一样,您需要指定编码。建议使用UTF-8,因此除非您知道需要其他内容,否则请使用它。