【发布时间】:2017-10-24 09:43:59
【问题描述】:
我在 aerospike 中插入一条记录。在我的本地环境中一切正常。但是,在暂存环境中,UTF-8 字符未正确存储。
aql> 从 test.msges 中选择 msg
LIST('["{"message_id":"kxwFZHVBKj","title":"คำถามได้รัภšà¸à¸²à¸£à¸•à¸à¸šà¸à¸¥à¸±à¸šà¹à¸¥à¹‰à¸§!","actions": | +-------------------------------------------------- -------------------------------------------------- -------+ 1 行(0.038 秒)
此外,这是使用非常 UTF-8 安全的 golang clinet 完成的,即没有字节到字符串或字符串到字节转换的问题,这在本地运行良好,因此 我假设这与 aerospike 配置或版本有关。我本地的 aerospike 版本是 3.14.1.1,暂存版本是 3.9.1.1。
根据这篇文章中的 c-client cmets,我注意到的另一件事是,在我的本地机器上,我得到了以下 aql 版本:
Aerospike 查询客户端版本 3.13.0.1 C 客户端版本 4.1.6
但在遥控器上我有以下内容:
Aerospike 查询客户端版本 3.9.1.2
缺少 C 客户端版本!
任何人都可以帮助我在这里缺少什么配置(或其他)?
【问题讨论】:
-
它看起来像 utf-8 被输出为单个字符编码。
-
您的语言环境是什么? IE。
locale在那里打印什么? -
LANG= LC_CTYPE=POSIX LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS= "POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL=
-
在我的本地机器上,语言环境是 en_US.utf-8。我认为这可能是问题所在。但是我在本地机器上更改了我的语言环境,并希望我能在本地重现问题,但字符仍然很好:(
-
aql 是一个 C 应用程序,它在下面运行 C 客户端。您是否通过 golang 客户端检索 msg bin 来检查这是否不是 aql 错误?