java - 将字符串转换为十六进制的字符集是什么?

标签 java string hex

我使用此代码将字符串转换为十六进制值:

public static String toHex(String arg) throws UnsupportedEncodingException {
    return String.format("%040x", new BigInteger(1, arg.getBytes(/*YOUR_CHARSET?*/)));
}

代码似乎工作正常,但我不明白评论

/*YOUR_CHARSET?*/

我应该在那里放什么?

最佳答案

The code seems to work fine but I don't understand the comment /YOUR_CHARSET?/ ? Am I supposed to put there?

方法String#getBytes()通过使用平台的默认字符集对其进行编码,将String转换为字节数组。调用 String#getBytes() 是有风险的,因为它会使您的代码依赖于平台,如果您更改平台,可能会在以后导致解码问题,这就是为什么强烈建议使用 String #getBytes(charset) 为了清楚地指定目标字符集,无论使用什么平台,它都可以正常工作假设指定的字符集可以正确覆盖的所有字符>要编码的字符串。事实上,如果您的 String 中有重音字符,并且您使用不匹配的字符集(例如 ASCII),您稍后会遇到解码问题。

关于java - 将字符串转换为十六进制的字符集是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39832368/

相关文章:

java - 哪个进入堆栈或堆?

c - 有没有办法将转义序列转换为字符串?

java - System.out.print 语句的意外输出

java - spinner.setAdapter(适配器) 导致 "A resource was acquired at attached stack trace but never released"错误并应用程序强制关闭

java - 如果用户输入某个关键字并显示它,如何使 editText 获取 stringarray 的值?

python - 将列表的字符串表示形式转换为字典 Python

c - 如何将 Basys mx3 计时器从十六进制更改为十进制

ios - 如何将十六进制值的 NSString 转换为 Char - Objective C

java - 读取序列化文件 - java

java - 如何使用额外的资源部署 IntelliJ 插件?