This is an automated email from the ASF dual-hosted git repository.

zrlw pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.3 by this push:
     new 55d1c092cb Get bytes using UTF-8 charset (#15483)
55d1c092cb is described below

commit 55d1c092cb983afa779fa25069daa520b0b7e357
Author: zrlw <[email protected]>
AuthorDate: Tue Jun 24 15:27:39 2025 +0800

    Get bytes using UTF-8 charset (#15483)
---
 dubbo-common/src/main/java/org/apache/dubbo/common/io/Bytes.java  | 3 ++-
 .../src/main/java/org/apache/dubbo/common/utils/JVMUtil.java      | 3 ++-
 .../apache/dubbo/maven/plugin/protoc/DubboProtocCompilerMojo.java | 1 +
 .../src/main/java/org/apache/dubbo/auth/BasicAuthenticator.java   | 5 +++--
 .../src/main/java/org/apache/dubbo/auth/utils/SignatureUtils.java | 2 +-
 .../apache/dubbo/qos/server/handler/ForeignHostPermitHandler.java | 3 ++-
 .../org/apache/dubbo/qos/server/handler/HttpProcessHandler.java   | 8 ++++++--
 .../org/apache/dubbo/qos/server/handler/QosProcessHandler.java    | 5 +++--
 .../apache/dubbo/spring/security/jackson/ObjectMapperCodec.java   | 3 ++-
 .../rpc/protocol/tri/websocket/TripleTextMessageHandler.java      | 6 ++++--
 .../src/test/java/org/apache/dubbo/registry/ZKTools.java          | 2 +-
 .../org/apache/dubbo/registry/multicast/MulticastRegistry.java    | 5 +++--
 .../dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java      | 3 ++-
 .../java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java  | 3 ++-
 .../org/apache/dubbo/remoting/codec/DeprecatedTelnetCodec.java    | 3 ++-
 .../remoting/zookeeper/curator5/Curator5ZookeeperClient.java      | 2 +-
 .../src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java  | 3 ++-
 17 files changed, 39 insertions(+), 21 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/io/Bytes.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/io/Bytes.java
index 98007dffc7..d3c615b755 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/io/Bytes.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/io/Bytes.java
@@ -23,6 +23,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.Map;
@@ -823,7 +824,7 @@ public class Bytes {
      * @return MD5 byte array.
      */
     public static byte[] getMD5(String str) {
-        return getMD5(str.getBytes());
+        return getMD5(str.getBytes(StandardCharsets.UTF_8));
     }
 
     /**
diff --git 
a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JVMUtil.java 
b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JVMUtil.java
index f38dfaeb5b..146e351e08 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JVMUtil.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JVMUtil.java
@@ -24,6 +24,7 @@ import java.lang.management.ManagementFactory;
 import java.lang.management.MonitorInfo;
 import java.lang.management.ThreadInfo;
 import java.lang.management.ThreadMXBean;
+import java.nio.charset.StandardCharsets;
 
 import static java.lang.Thread.State.BLOCKED;
 import static java.lang.Thread.State.TIMED_WAITING;
@@ -33,7 +34,7 @@ public class JVMUtil {
     public static void jstack(OutputStream stream) throws Exception {
         ThreadMXBean threadMxBean = ManagementFactory.getThreadMXBean();
         for (ThreadInfo threadInfo : threadMxBean.dumpAllThreads(true, true)) {
-            stream.write(getThreadDumpString(threadInfo).getBytes());
+            
stream.write(getThreadDumpString(threadInfo).getBytes(StandardCharsets.UTF_8));
         }
     }
 
diff --git 
a/dubbo-maven-plugin/src/main/java/org/apache/dubbo/maven/plugin/protoc/DubboProtocCompilerMojo.java
 
b/dubbo-maven-plugin/src/main/java/org/apache/dubbo/maven/plugin/protoc/DubboProtocCompilerMojo.java
index 2d357cecd8..5cd40bd3ae 100644
--- 
a/dubbo-maven-plugin/src/main/java/org/apache/dubbo/maven/plugin/protoc/DubboProtocCompilerMojo.java
+++ 
b/dubbo-maven-plugin/src/main/java/org/apache/dubbo/maven/plugin/protoc/DubboProtocCompilerMojo.java
@@ -533,6 +533,7 @@ public class DubboProtocCompilerMojo extends AbstractMojo {
     }
 
     private static String fixUnicodeOutput(final String message) {
+        // TODO default charset is not UTF-8 ?
         return new String(message.getBytes(), StandardCharsets.UTF_8);
     }
 }
diff --git 
a/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/BasicAuthenticator.java
 
b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/BasicAuthenticator.java
index b155e67da5..57554a170e 100644
--- 
a/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/BasicAuthenticator.java
+++ 
b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/BasicAuthenticator.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.auth.spi.Authenticator;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.rpc.Invocation;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Base64;
 import java.util.Objects;
 
@@ -31,7 +32,7 @@ public class BasicAuthenticator implements Authenticator {
         String username = url.getParameter(Constants.USERNAME_KEY);
         String password = url.getParameter(Constants.PASSWORD_KEY);
         String auth = username + ":" + password;
-        String encodedAuth = 
Base64.getEncoder().encodeToString(auth.getBytes());
+        String encodedAuth = 
Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));
         String authHeaderValue = "Basic " + encodedAuth;
 
         invocation.setAttachment(Constants.AUTHORIZATION_HEADER_LOWER, 
authHeaderValue);
@@ -42,7 +43,7 @@ public class BasicAuthenticator implements Authenticator {
         String username = url.getParameter(Constants.USERNAME_KEY);
         String password = url.getParameter(Constants.PASSWORD_KEY);
         String auth = username + ":" + password;
-        String encodedAuth = 
Base64.getEncoder().encodeToString(auth.getBytes());
+        String encodedAuth = 
Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));
         String authHeaderValue = "Basic " + encodedAuth;
 
         if (!Objects.equals(authHeaderValue, 
invocation.getAttachment(Constants.AUTHORIZATION_HEADER))
diff --git 
a/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/utils/SignatureUtils.java
 
b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/utils/SignatureUtils.java
index 3267835bb3..da4c0b3e87 100644
--- 
a/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/utils/SignatureUtils.java
+++ 
b/dubbo-plugin/dubbo-auth/src/main/java/org/apache/dubbo/auth/utils/SignatureUtils.java
@@ -64,7 +64,7 @@ public class SignatureUtils {
         } catch (NoSuchAlgorithmException e) {
             throw new RuntimeException("Failed to generate HMAC: no such 
algorithm exception " + HMAC_SHA256_ALGORITHM);
         }
-        SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), 
HMAC_SHA256_ALGORITHM);
+        SecretKeySpec signingKey = new 
SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), HMAC_SHA256_ALGORITHM);
         try {
             mac.init(signingKey);
         } catch (InvalidKeyException e) {
diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/ForeignHostPermitHandler.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/ForeignHostPermitHandler.java
index b33803a988..4308c3d919 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/ForeignHostPermitHandler.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/ForeignHostPermitHandler.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.qos.common.QosConstants;
 
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
+import java.nio.charset.StandardCharsets;
 import java.util.function.Predicate;
 
 import io.netty.buffer.ByteBuf;
@@ -74,7 +75,7 @@ public class ForeignHostPermitHandler extends 
ChannelHandlerAdapter {
 
         ByteBuf cb = Unpooled.wrappedBuffer((QosConstants.BR_STR
                         + "Foreign Ip Not Permitted, Consider Config It In 
Whitelist." + QosConstants.BR_STR)
-                .getBytes());
+                .getBytes(StandardCharsets.UTF_8));
         ctx.writeAndFlush(cb).addListener(ChannelFutureListener.CLOSE);
     }
 
diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/HttpProcessHandler.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/HttpProcessHandler.java
index d23a4acd3a..fb7c1300e0 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/HttpProcessHandler.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/HttpProcessHandler.java
@@ -27,6 +27,8 @@ import 
org.apache.dubbo.qos.command.exception.NoSuchCommandException;
 import org.apache.dubbo.qos.command.exception.PermissionDenyException;
 import org.apache.dubbo.rpc.model.FrameworkModel;
 
+import java.nio.charset.StandardCharsets;
+
 import io.netty.buffer.Unpooled;
 import io.netty.channel.ChannelFutureListener;
 import io.netty.channel.ChannelHandlerContext;
@@ -68,9 +70,11 @@ public class HttpProcessHandler extends 
SimpleChannelInboundHandler<HttpRequest>
 
     private static FullHttpResponse http(int httpCode, String result) {
         FullHttpResponse response = new DefaultFullHttpResponse(
-                HttpVersion.HTTP_1_1, HttpResponseStatus.valueOf(httpCode), 
Unpooled.wrappedBuffer(result.getBytes()));
+                HttpVersion.HTTP_1_1,
+                HttpResponseStatus.valueOf(httpCode),
+                
Unpooled.wrappedBuffer(result.getBytes(StandardCharsets.UTF_8)));
         HttpHeaders httpHeaders = response.headers();
-        httpHeaders.set(HttpHeaderNames.CONTENT_TYPE, "text/plain");
+        httpHeaders.set(HttpHeaderNames.CONTENT_TYPE, "text/plain; 
charset=utf-8");
         httpHeaders.set(HttpHeaderNames.CONTENT_LENGTH, 
response.content().readableBytes());
         return response;
     }
diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/QosProcessHandler.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/QosProcessHandler.java
index 353a2eed7c..441416f86c 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/QosProcessHandler.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/QosProcessHandler.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.common.utils.ExecutorUtil;
 import org.apache.dubbo.qos.api.QosConfiguration;
 import org.apache.dubbo.rpc.model.FrameworkModel;
 
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
@@ -60,8 +61,8 @@ public class QosProcessHandler extends ByteToMessageDecoder {
                         () -> {
                             final String welcome = 
qosConfiguration.getWelcome();
                             if (welcome != null) {
-                                
ctx.write(Unpooled.wrappedBuffer(welcome.getBytes()));
-                                
ctx.writeAndFlush(Unpooled.wrappedBuffer(PROMPT.getBytes()));
+                                
ctx.write(Unpooled.wrappedBuffer(welcome.getBytes(StandardCharsets.UTF_8)));
+                                
ctx.writeAndFlush(Unpooled.wrappedBuffer(PROMPT.getBytes(StandardCharsets.UTF_8)));
                             }
                         },
                         500,
diff --git 
a/dubbo-plugin/dubbo-spring-security/src/main/java/org/apache/dubbo/spring/security/jackson/ObjectMapperCodec.java
 
b/dubbo-plugin/dubbo-spring-security/src/main/java/org/apache/dubbo/spring/security/jackson/ObjectMapperCodec.java
index e70aeaeb9e..f85e182e36 100644
--- 
a/dubbo-plugin/dubbo-spring-security/src/main/java/org/apache/dubbo/spring/security/jackson/ObjectMapperCodec.java
+++ 
b/dubbo-plugin/dubbo-spring-security/src/main/java/org/apache/dubbo/spring/security/jackson/ObjectMapperCodec.java
@@ -22,6 +22,7 @@ import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.common.utils.ClassUtils;
 import org.apache.dubbo.common.utils.StringUtils;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.function.Consumer;
@@ -64,7 +65,7 @@ public class ObjectMapperCodec {
         if (StringUtils.isBlank(content)) {
             return null;
         }
-        return deserialize(content.getBytes(), clazz);
+        return deserialize(content.getBytes(StandardCharsets.UTF_8), clazz);
     }
 
     public String serialize(Object object) {
diff --git 
a/dubbo-plugin/dubbo-triple-websocket/src/main/java/org/apache/dubbo/rpc/protocol/tri/websocket/TripleTextMessageHandler.java
 
b/dubbo-plugin/dubbo-triple-websocket/src/main/java/org/apache/dubbo/rpc/protocol/tri/websocket/TripleTextMessageHandler.java
index 2aa962d6d1..6ac96afde1 100644
--- 
a/dubbo-plugin/dubbo-triple-websocket/src/main/java/org/apache/dubbo/rpc/protocol/tri/websocket/TripleTextMessageHandler.java
+++ 
b/dubbo-plugin/dubbo-triple-websocket/src/main/java/org/apache/dubbo/rpc/protocol/tri/websocket/TripleTextMessageHandler.java
@@ -23,6 +23,8 @@ import 
org.apache.dubbo.remoting.websocket.WebSocketTransportListener;
 
 import javax.websocket.MessageHandler;
 
+import java.nio.charset.StandardCharsets;
+
 public class TripleTextMessageHandler implements 
MessageHandler.Partial<String> {
 
     private final WebSocketTransportListener webSocketTransportListener;
@@ -33,8 +35,8 @@ public class TripleTextMessageHandler implements 
MessageHandler.Partial<String>
 
     @Override
     public void onMessage(String messagePart, boolean last) {
-        Http2InputMessage http2InputMessage =
-                new Http2InputMessageFrame(new 
FinalFragmentByteArrayInputStream(messagePart.getBytes(), last), false);
+        Http2InputMessage http2InputMessage = new Http2InputMessageFrame(
+                new 
FinalFragmentByteArrayInputStream(messagePart.getBytes(StandardCharsets.UTF_8), 
last), false);
         webSocketTransportListener.onData(http2InputMessage);
     }
 }
diff --git 
a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/ZKTools.java
 
b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/ZKTools.java
index aedbed0727..10266fe5cf 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/ZKTools.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/ZKTools.java
@@ -231,7 +231,7 @@ public class ZKTools {
     }
 
     public static void setData(String path, String data) throws Exception {
-        client.setData().inBackground().forPath(path, data.getBytes());
+        client.setData().inBackground().forPath(path, 
data.getBytes(StandardCharsets.UTF_8));
     }
 
     public static void testPathCache() throws Exception {
diff --git 
a/dubbo-registry/dubbo-registry-multicast/src/main/java/org/apache/dubbo/registry/multicast/MulticastRegistry.java
 
b/dubbo-registry/dubbo-registry-multicast/src/main/java/org/apache/dubbo/registry/multicast/MulticastRegistry.java
index 1575cc6853..5bfe264146 100644
--- 
a/dubbo-registry/dubbo-registry-multicast/src/main/java/org/apache/dubbo/registry/multicast/MulticastRegistry.java
+++ 
b/dubbo-registry/dubbo-registry-multicast/src/main/java/org/apache/dubbo/registry/multicast/MulticastRegistry.java
@@ -37,6 +37,7 @@ import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.MulticastSocket;
 import java.net.Socket;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -260,7 +261,7 @@ public class MulticastRegistry extends FailbackRegistry {
             logger.info("Send multicast message: " + msg + " to " + 
multicastAddress + ":" + multicastPort);
         }
         try {
-            byte[] data = (msg + "\n").getBytes();
+            byte[] data = (msg + "\n").getBytes(StandardCharsets.UTF_8);
             DatagramPacket hi = new DatagramPacket(data, data.length, 
multicastAddress, multicastPort);
             multicastSocket.send(hi);
         } catch (Exception e) {
@@ -273,7 +274,7 @@ public class MulticastRegistry extends FailbackRegistry {
             logger.info("Send unicast message: " + msg + " to " + host + ":" + 
multicastPort);
         }
         try {
-            byte[] data = (msg + "\n").getBytes();
+            byte[] data = (msg + "\n").getBytes(StandardCharsets.UTF_8);
             DatagramPacket hi = new DatagramPacket(data, data.length, 
InetAddress.getByName(host), multicastPort);
             multicastSocket.send(hi);
         } catch (Exception e) {
diff --git 
a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
 
b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
index 19da7748af..ecf88f4b4f 100644
--- 
a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
+++ 
b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
@@ -25,6 +25,7 @@ import 
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
 import org.apache.dubbo.rpc.model.ScopeModelUtil;
 
 import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -92,7 +93,7 @@ public abstract class CuratorFrameworkUtils {
 
         String userInformation = connectionURL.getUserInformation();
         if (StringUtils.isNotEmpty(userInformation)) {
-            builder = builder.authorization("digest", 
userInformation.getBytes());
+            builder = builder.authorization("digest", 
userInformation.getBytes(StandardCharsets.UTF_8));
             builder.aclProvider(new ACLProvider() {
                 @Override
                 public List<ACL> getDefaultAcl() {
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java
index 3f1140b22c..73e420fd07 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java
@@ -29,6 +29,7 @@ import 
org.apache.dubbo.remoting.transport.codec.TransportCodec;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
@@ -273,7 +274,7 @@ public class TelnetCodec extends TransportCodec {
         if (CollectionUtils.isNotEmpty(history) && index != null && index >= 0 
&& index < history.size()) {
             String value = history.get(index);
             if (value != null) {
-                byte[] b1 = value.getBytes();
+                byte[] b1 = value.getBytes(StandardCharsets.UTF_8);
                 byte[] b2 = new byte[b1.length + message.length];
                 System.arraycopy(b1, 0, b2, 0, b1.length);
                 System.arraycopy(message, 0, b2, b1.length, message.length);
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/codec/DeprecatedTelnetCodec.java
 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/codec/DeprecatedTelnetCodec.java
index 2f9180277c..e7df0bb586 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/codec/DeprecatedTelnetCodec.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/codec/DeprecatedTelnetCodec.java
@@ -34,6 +34,7 @@ import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.InetSocketAddress;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
@@ -310,7 +311,7 @@ public class DeprecatedTelnetCodec implements Codec {
         if (history != null && history.size() > 0 && index != null && index >= 
0 && index < history.size()) {
             String value = history.get(index);
             if (value != null) {
-                byte[] b1 = value.getBytes();
+                byte[] b1 = value.getBytes(StandardCharsets.UTF_8);
                 if (message != null && message.length > 0) {
                     byte[] b2 = new byte[b1.length + message.length];
                     System.arraycopy(b1, 0, b2, 0, b1.length);
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
index fe37a10362..63b714aa34 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java
@@ -79,7 +79,7 @@ public class Curator5ZookeeperClient
                     .sessionTimeoutMs(sessionExpireMs);
             String userInformation = url.getUserInformation();
             if (userInformation != null && userInformation.length() > 0) {
-                builder = builder.authorization("digest", 
userInformation.getBytes());
+                builder = builder.authorization("digest", 
userInformation.getBytes(StandardCharsets.UTF_8));
                 builder.aclProvider(new ACLProvider() {
                     @Override
                     public List<ACL> getDefaultAcl() {
diff --git 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java
 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java
index c06450b578..d50b7cf019 100644
--- 
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java
+++ 
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericFilter.java
@@ -53,6 +53,7 @@ import org.apache.dubbo.rpc.support.ProtocolUtils;
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -183,7 +184,7 @@ public class GenericFilter implements Filter, 
Filter.Listener, ScopeModelAware {
                     // as proto3 only accept one protobuf parameter
                     if (args.length == 1 && args[0] instanceof String) {
                         try (UnsafeByteArrayInputStream is =
-                                new UnsafeByteArrayInputStream(((String) 
args[0]).getBytes())) {
+                                new UnsafeByteArrayInputStream(((String) 
args[0]).getBytes(StandardCharsets.UTF_8))) {
                             args[0] = applicationModel
                                     .getExtensionLoader(Serialization.class)
                                     
.getExtension(GENERIC_SERIALIZATION_PROTOBUF)

Reply via email to