[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]: # ({b4119079-b4119079})
#### MySQL

如果一个值在非UTF8编码中包含非ascii字符，那么当数据库存储此值时，该字符及该字符后的值将被丢弃。没有警告信息写入 *zabbix\_server.log*.  
至少与 MySQL 版本 5.1.61 相关

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

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

如果一个值在非UTF8编码中包含非ascii字符—这将导致一个失败的SQL查询(PGRES\_FATAL\_ERROR:编码的无效字节序列)和数据将不会被存储。会向*zabbix\_server.log*中写入一个适当的警告消息.\
至少与 PostgreSQL 版本 9.1.3 相关

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