[comment]: # translation:outdated

[comment]: # ({f0391121-df5bbb96})
# 4 返回值的编码

Zabbix server 要求每个返回的文本值都是UTF8编码，这涉及每一种类型的检查: zabbix agent、ssh、telnet等等。

不同的监视系统/设备和检查的返回值中可能有非ascii字符。对于这种情况，几乎所有的zabbix keys都包含一个额外的item key参数- <encoding> 。 这个关键参数是可选的，但是如果返回的值不是UTF8编码，并且它包含非ascii字符，则应该指定它。否则，结果可能是出乎意料的和不可预测的。

在这种情况下，对不同数据库后台的行为描述如下。

[comment]: # ({/f0391121-df5bbb96})

[comment]: # ({efcd9733-b4119079})
#### MySQL

如果某个值在非 UTF8 编码中包含非 ASCII 字符，则数据库在存储该值时会丢弃该字符及其后续内容。不会向 *zabbix\_server.log* 写入任何警告消息。<br>
这至少适用于 MySQL 5.1.61 版本。

[comment]: # ({/efcd9733-b4119079})

[comment]: # ({9f8e2da5-c305c3e1})
#### PostgreSQL

如果某个值在非 UTF8 编码中包含非 ASCII 字符，则会导致 SQL 查询失败（PGRES\_FATAL\_ERROR:ERROR invalid byte sequence for encoding），并且数据将不会被存储。相应的警告消息将被写入 *zabbix\_server.log*。<br>
至少与 PostgreSQL 9.1.3 版本相关。

[comment]: # ({/9f8e2da5-c305c3e1})
