weasel版本:0.14.3
系统版本:win10 x64
问题描述
在 installation.yaml 中配置 sync_dir 以将配置同步到指定目录。
但当指定的目录路径中包含中文(非ansi字符)时,实际同步到的路径是一个乱码路径,而非配置文件中指定路径。
详细
# encoding: utf-8
distribution_code_name: Weasel
distribution_name: "小狼毫"
distribution_version: 0.14.3
install_time: "Sat Oct 31 01:25:18 2020"
installation_id: "MyPC"
rime_version: 1.5.3
sync_dir: 'E:\Documents\坚果云\RimeSync'
分析
根据测试如下:
// utf-8编码
E:\Documents\坚果云\RimeSync
// 以ANSI编码显示
E:\Documents\鍧氭灉浜慭RimeSync
- rime的yml默认都是utf-8编码,因此修改
installation.yaml 时默认也是utf-8
- librime从
installation.yaml 读取路径数据,但生成路径时却是将路径当作ANSI编码处理。
- 当路径字符串包含中文且以utf-8编码,直接当作ANSI编码使用时,便会导致乱码
暂时的解决方式
- 同步文件夹路径不要包含中文
- 将
installation.yaml 文件以ANSI编码进行保存
补充
由于weasel是调用librime的api来执行的同步操作,因此问题代码在librime中,此issue或许应转移至librime。
但由于不熟悉c++,怀疑是否是属于编译方面问题或其他,因此发在weasel中,请维护者给予判断,是否应转移到librime。
weasel版本:0.14.3
系统版本:win10 x64
问题描述
在
installation.yaml中配置sync_dir以将配置同步到指定目录。但当指定的目录路径中包含中文(非ansi字符)时,实际同步到的路径是一个乱码路径,而非配置文件中指定路径。
详细
installation.yaml执行同步
实际同步到的路径:

E:\Documents\鍧氭灉浜慭RimeSync\MyPC而将配置文件以
ANSI编码保存,则可以同步到预期路径分析
根据测试如下:
installation.yaml时默认也是utf-8installation.yaml读取路径数据,但生成路径时却是将路径当作ANSI编码处理。暂时的解决方式
installation.yaml文件以ANSI编码进行保存补充
由于weasel是调用librime的api来执行的同步操作,因此问题代码在librime中,此issue或许应转移至librime。
但由于不熟悉c++,怀疑是否是属于编译方面问题或其他,因此发在weasel中,请维护者给予判断,是否应转移到librime。