java使用不同编码的不同JVM
假设我有两个JVM在运行,一个是客户机,另一个是服务器。假设客户机和服务器使用不同的编码。如果我在客户机上编写一个程序,通过网络将字符串发送到服务器,那么在客户机将字符串发送到服务器之前,是否需要在客户机中以服务器的编码方式对字符串进行编码?如果2首先使用不同的编码,这是否毫无意义?客户端和服务器如何处理通常使用不同编码交换消息的场景
你可以在下面搜索框中键入要查询的问题!
假设我有两个JVM在运行,一个是客户机,另一个是服务器。假设客户机和服务器使用不同的编码。如果我在客户机上编写一个程序,通过网络将字符串发送到服务器,那么在客户机将字符串发送到服务器之前,是否需要在客户机中以服务器的编码方式对字符串进行编码?如果2首先使用不同的编码,这是否毫无意义?客户端和服务器如何处理通常使用不同编码交换消息的场景
# 1 楼答案
我想您遇到的是所谓的平台默认编码。例如,当使用新字符串(字节[])将字节转换为字符串时,默认编码用于将字节转换为字符串。不同的服务器可能具有不同的设置,这些设置具有不同的默认平台编码
要防止由于不同的默认编码而导致服务器的不同行为,请指定将字节[]转换为字符串时要使用的编码。如果您不知道要使用的编码,那是另一回事,但至少您可以获得相同字节流的一致结果
例如,要将字符串转换为UTF-8字节流,请使用getBytes(“UTF-8”),要获取字符串,请使用String(byte[],“UTF-8”)
# 2 楼答案
JVM总是在
String
中使用UTF(读取this answer)关键部分是
String
的传输,这可能发生在基于字节的流上。将String
转换为byte[]
实际上需要指定编码。在大多数情况下,您应该使用utf-8我建议使用^{} /^{} ,它为字符集安全
String
传输提供方法