diff --git a/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigFetchMgrImpl.java b/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigFetchMgrImpl.java index 8d6ba8a3d..38af2be3f 100644 --- a/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigFetchMgrImpl.java +++ b/disconf-web/src/main/java/com/baidu/disconf/web/service/config/service/impl/ConfigFetchMgrImpl.java @@ -1,5 +1,6 @@ package com.baidu.disconf.web.service.config.service.impl; +import com.baidu.disconf.web.utils.CodeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -32,6 +33,9 @@ public Config getConfByParameter(Long appId, Long envId, String env, String key, DisConfigTypeEnum disConfigTypeEnum) { Config config = configDao.getByParameter(appId, envId, env, key, disConfigTypeEnum); + if (config != null) { + config.setValue(CodeUtils.unicodeToUtf8(config.getValue())); + } return config; } @@ -44,7 +48,7 @@ public ValueVo getConfItemByParameter(Long appId, Long envId, String version, St if (config == null) { return ConfigUtils.getErrorVo("cannot find this config"); } - + config.setValue(CodeUtils.unicodeToUtf8(config.getValue())); ValueVo valueVo = new ValueVo(); valueVo.setValue(config.getValue()); valueVo.setStatus(Constants.OK); 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 86a58bd04..4958b3111 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 @@ -127,7 +127,7 @@ public List getDisconfFileList(ConfListForm confListForm) { File file = new File(curTime, config.getName()); try { - FileUtils.writeByteArrayToFile(file, config.getValue().getBytes()); + FileUtils.writeByteArrayToFile(file, CodeUtils.unicodeToUtf8(config.getValue()).getBytes()); } catch (IOException e) { LOG.warn(e.toString()); } @@ -496,7 +496,7 @@ public void notifyZookeeper(Long configId) { */ @Override public String getValue(Long configId) { - return configDao.getValue(configId); + return CodeUtils.unicodeToUtf8(configDao.getValue(configId)); } /** 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 86f4cd77d..3bb17d9ef 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 @@ -54,6 +54,8 @@ public static String utf8ToUnicode(String inStr) { * 2007-3-15 */ public static String unicodeToUtf8(String theString) { + if (theString == null) + return null; char aChar; int len = theString.length(); StringBuffer outBuffer = new StringBuffer(len);