diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/NacosConfigUtils.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/NacosConfigUtils.java index 386d160e8..b8a448dd7 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/NacosConfigUtils.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/NacosConfigUtils.java @@ -21,7 +21,7 @@ package com.alibaba.cloud.nacos.utils; */ public final class NacosConfigUtils { - private NacosConfigUtils(){ + private NacosConfigUtils() { } /** @@ -33,16 +33,26 @@ public final class NacosConfigUtils { StringBuilder sb = new StringBuilder(); char[] chars = configValue.toCharArray(); for (char aChar : chars) { - if (isChinese(aChar)) { - sb.append("\\u").append(Integer.toHexString(aChar)); + if (isBaseLetter(aChar)) { + sb.append(aChar); } else { - sb.append(aChar); + sb.append(String.format("\\u%04x", (int) aChar)); } } return sb.toString(); } + /** + * char is base latin or whitespace? + * @param ch a character + * @return true or false + */ + public static boolean isBaseLetter(char ch) { + Character.UnicodeBlock ub = Character.UnicodeBlock.of(ch); + return ub == Character.UnicodeBlock.BASIC_LATIN || Character.isWhitespace(ch); + } + /** * char is chinese? * @param c a character