vscode使用svn时报错,无法通过扩展svn来操作,在setting.json里加上
"svn.showOutput": true,
让svn扩展在output里可以输出日志我们看到有如下的信息
svn: warning: environment variable LANG is en_US.UTF-8
svn: warning: please check that your locale name is correct
svn: E000022: Can't convert string from native encoding to 'UTF-8'
看一下我们的字符集设置:
root@linaro-alip:/userdata/# locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
看到svn的环境里是 en_US.UTF-8,而我们的是zh_CN.UTF-8。
受这篇issue的启发Chinese comment not supported · Issue #286 · JohnstonCode/svn-scm (github.com)
找到svn扩展所在位置/root/.vscode-server/extensions/johnstoncode.svn-scm-2.15.7/out/extension.js,
查看了一下extension.js的内容,里面的所有的字符集设置都是
{LC_ALL:"en_US.UTF-8",LANG:"en_US.UTF-8"}
直接将该文件的所有en_US.UTF-8替换为 zh_CN.UTF-8,问题得到解决,svn扩展正常工作了