gpt4 book ai didi

java - String s = new String(s.getBytes ("UTF-8") ,"UTF-8"); 之间有什么区别?和 String s = new String(s.getBytes() ,"UTF-8");

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:52:41 25 4
gpt4 key购买 nike

有什么区别

String(s.getBytes("UTF-8"),"UTF-8"); 

String(s.getBytes(),"UTF-8");

在第一个代码示例中,一些特殊字符被解码了,为什么以及有什么区别?

如果我使用 UTF-8 双重解码,会有什么影响吗?

最佳答案

来自javadoc :

对于getBytes():

Encodes this String into a sequence of bytes using the platform's default charset, storing the result into a new byte array.

然而,getBytes(Charset) 说:

Encodes this String into a sequence of bytes using the given charset, storing the result into a new byte array.

因此第二个版本允许您完全控制,第一个调用依赖于该平台默认字符集。

这就是全部。

对于“平台默认值”,请参阅 here例如。请注意,人们要求将默认值设置为全面的 UTF-8(请参阅 here)。

关于java - String s = new String(s.getBytes ("UTF-8") ,"UTF-8"); 之间有什么区别?和 String s = new String(s.getBytes() ,"UTF-8");,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54198492/

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