From ca6c006eab787061d4ce8ef978539728696bd2ca Mon Sep 17 00:00:00 2001 From: "jianhao.dai" Date: Wed, 31 May 2017 15:49:27 +0800 Subject: [PATCH 1/6] =?UTF-8?q?CodeUtils::utf8ToUnicode=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E8=BD=AC=E6=8D=A2=E6=97=B6=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=E5=89=8D=E5=AF=BC0=E7=9A=84=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baidu/disconf/web/utils/CodeUtils.java | 22 ++++++++++++++----- .../web/test/utils/CodeUtilsTestCase.java | 22 +++++++++++++++---- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java b/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java index c1fcc4b77..39942c6c8 100644 --- a/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java +++ b/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java @@ -10,6 +10,8 @@ public class CodeUtils { protected static final Logger LOG = LoggerFactory.getLogger(CodeUtils.class); + private static final int SHIFT = 4; + /** * utf-8 转换成 unicode */ @@ -26,10 +28,18 @@ public static String utf8ToUnicode(String inStr) { int j = (int) myBuffer[i] - 65248; sb.append((char) j); } else { - int chr1 = (char) myBuffer[i]; - String hexS = Integer.toHexString(chr1); - String unicode = "\\u" + hexS; - sb.append(unicode.toLowerCase()); + int chr1 = myBuffer[i] & 0x0FFFF; + + //@see Integer::toUnsignedString0 + int mag = Integer.SIZE - Integer.numberOfLeadingZeros(chr1); + int chars = Math.max(((mag + (SHIFT - 1)) / SHIFT), 1); + + StringBuilder builder = new StringBuilder("\\u"); + for (int j = 0; j < SHIFT - chars; j++) { + builder.append('0'); + } + builder.append(Integer.toHexString(chr1)); + sb.append(builder.toString().toLowerCase()); } } return sb.toString(); @@ -43,8 +53,8 @@ public static String unicodeToUtf8(String theString) { if (theString == null) { return null; } - char aChar; - int len = theString.length(); + char aChar; + int len = theString.length(); StringBuffer outBuffer = new StringBuffer(len); for (int x = 0; x < len; ) { aChar = theString.charAt(x++); diff --git a/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java b/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java index de6aaa4c7..4834dd6c3 100644 --- a/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java +++ b/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java @@ -1,19 +1,33 @@ package com.baidu.disconf.web.test.utils; -import java.io.File; -import java.io.IOException; - +import com.baidu.disconf.web.utils.CodeUtils; import org.apache.commons.io.FileUtils; +import org.aspectj.apache.bcel.classfile.Code; import org.junit.Assert; import org.junit.Test; -import com.baidu.disconf.web.utils.CodeUtils; +import java.io.File; +import java.io.IOException; /** * Created by knightliao on 15/1/7. */ public class CodeUtilsTestCase { + @Test + public void utf8ToUnicodeTest() { + String code = CodeUtils.utf8ToUnicode("syserror.paramtype=请求参数解析错误"); + System.out.println(code); + Assert.assertEquals("syserror.paramtype=\\u8bf7\\u6c42\\u53c2\\u6570\\u89e3\\u6790\\u9519\\u8bef", code); + } + + @Test + public void utf8ToUnicodeTest2() { + String code = CodeUtils.utf8ToUnicode("·"); + System.out.println(code); + Assert.assertEquals("\\u00b7", code); + } + @Test public void unicodeToUtf8Test() { From e465f77bb0233d7f0f786b67284526e83bf513bd Mon Sep 17 00:00:00 2001 From: "jianhao.dai" Date: Wed, 31 May 2017 15:52:44 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E9=80=A0?= =?UTF-8?q?=E6=88=90=E7=9A=84=E4=BB=A3=E7=A0=81=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/baidu/disconf/web/utils/CodeUtils.java | 4 ++-- .../baidu/disconf/web/test/utils/CodeUtilsTestCase.java | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java b/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java index 39942c6c8..82907da7f 100644 --- a/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java +++ b/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java @@ -53,8 +53,8 @@ public static String unicodeToUtf8(String theString) { if (theString == null) { return null; } - char aChar; - int len = theString.length(); + char aChar; + int len = theString.length(); StringBuffer outBuffer = new StringBuffer(len); for (int x = 0; x < len; ) { aChar = theString.charAt(x++); diff --git a/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java b/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java index 4834dd6c3..d77292cd9 100644 --- a/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java +++ b/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java @@ -1,13 +1,14 @@ package com.baidu.disconf.web.test.utils; -import com.baidu.disconf.web.utils.CodeUtils; +import java.io.File; +import java.io.IOException; + import org.apache.commons.io.FileUtils; -import org.aspectj.apache.bcel.classfile.Code; + import org.junit.Assert; import org.junit.Test; -import java.io.File; -import java.io.IOException; +import com.baidu.disconf.web.utils.CodeUtils; /** * Created by knightliao on 15/1/7. From eb173fced7895e8c90532520ca710d3f0a7db32d Mon Sep 17 00:00:00 2001 From: "jianhao.dai" Date: Wed, 31 May 2017 15:54:39 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E9=80=A0?= =?UTF-8?q?=E6=88=90=E7=9A=84=E4=BB=A3=E7=A0=81=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java | 1 - 1 file changed, 1 deletion(-) diff --git a/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java b/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java index d77292cd9..8cbc8b1bd 100644 --- a/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java +++ b/disconf-web/src/test/java/com/baidu/disconf/web/test/utils/CodeUtilsTestCase.java @@ -4,7 +4,6 @@ import java.io.IOException; import org.apache.commons.io.FileUtils; - import org.junit.Assert; import org.junit.Test; From b566636d8f2588cf0306e95d89f348ea2edef142 Mon Sep 17 00:00:00 2001 From: "jianhao.dai" Date: Wed, 31 May 2017 16:01:39 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BD=BF=E7=94=A8sb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/baidu/disconf/web/utils/CodeUtils.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java b/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java index 82907da7f..6da40712e 100644 --- a/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java +++ b/disconf-web/src/main/java/com/baidu/disconf/web/utils/CodeUtils.java @@ -34,12 +34,11 @@ public static String utf8ToUnicode(String inStr) { int mag = Integer.SIZE - Integer.numberOfLeadingZeros(chr1); int chars = Math.max(((mag + (SHIFT - 1)) / SHIFT), 1); - StringBuilder builder = new StringBuilder("\\u"); + sb.append("\\u"); for (int j = 0; j < SHIFT - chars; j++) { - builder.append('0'); + sb.append('0'); } - builder.append(Integer.toHexString(chr1)); - sb.append(builder.toString().toLowerCase()); + sb.append(Integer.toHexString(chr1).toLowerCase()); } } return sb.toString(); From 1f4979aa6774e0d23cb5dd7619d9830da22cfc4f Mon Sep 17 00:00:00 2001 From: "jianhao.dai" Date: Thu, 1 Jun 2017 15:39:49 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=9B=A0=E4=B8=BA=E8=BD=AC=E4=B9=89?= =?UTF-8?q?=E5=AF=BC=E8=87=B4zk=E5=92=8Cdb=E6=95=B0=E6=8D=AE=E6=AF=94?= =?UTF-8?q?=E8=BE=83=E5=87=BA=E7=8E=B0errorlist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/service/config/service/impl/ConfigMgrImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigMgrImpl.java b/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigMgrImpl.java index ba3b04b3f..439e7f3ce 100644 --- a/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigMgrImpl.java +++ b/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigMgrImpl.java @@ -511,9 +511,10 @@ private MachineListVo getZkData(List datalist, Config config) int errorNum = 0; for (ZkDisconfDataItem zkDisconfDataItem : datalist) { + String value = CodeUtils.unicodeToUtf8(config.getValue()); if (config.getType().equals(DisConfigTypeEnum.FILE.getType())) { - List errorKeyList = compareConfig(zkDisconfDataItem.getValue(), config.getValue()); + List errorKeyList = compareConfig(zkDisconfDataItem.getValue(), value); if (errorKeyList.size() != 0) { zkDisconfDataItem.setErrorList(errorKeyList); @@ -525,7 +526,7 @@ private MachineListVo getZkData(List datalist, Config config) // 配置项 // - if (zkDisconfDataItem.getValue().trim().equals(config.getValue().trim())) { + if (zkDisconfDataItem.getValue().trim().equals(value.trim())) { } else { List errorKeyList = new ArrayList(); From fc8676985bdee8e2fe3ef4bbeaa3868227c29185 Mon Sep 17 00:00:00 2001 From: "jianhao.dai" Date: Thu, 1 Jun 2017 15:51:27 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=9B=A0=E4=B8=BA=E8=BD=AC=E4=B9=89?= =?UTF-8?q?=E5=AF=BC=E8=87=B4zk=E5=92=8Cdb=E6=95=B0=E6=8D=AE=E6=AF=94?= =?UTF-8?q?=E8=BE=83=E5=87=BA=E7=8E=B0errorlist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../disconf/web/service/config/service/impl/ConfigMgrImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigMgrImpl.java b/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigMgrImpl.java index 439e7f3ce..cdf7e57e2 100644 --- a/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigMgrImpl.java +++ b/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigMgrImpl.java @@ -530,7 +530,7 @@ private MachineListVo getZkData(List datalist, Config config) } else { List errorKeyList = new ArrayList(); - errorKeyList.add(config.getValue().trim()); + errorKeyList.add(value.trim()); zkDisconfDataItem.setErrorList(errorKeyList); errorNum++; }