zabbix告警邮件乱码问题

ZABBIX报警内容:邮件标题正常,内容为乱码;微信报警正常。java

曾试图改变环境变量:export LANG=zh_CN.UTF-8 依旧为乱码mysql

缘由:export只改变的环境变量 而ZABBIX报警内容为传参,所以须要转码。sql

#!/bin/bash
#zabbix邮件告警脚本
#auth:jzd
#time:2017-03-21
#Version:V1.0

mail=$1
title=$2
message=$3

echo "${message}" | /usr/bin/iconv -t GB2312 -f UTF-8 | mailx -s "${title}" ${mail} >> /tmp/mailx.log 2>&1

exit $?

这里使用iconv进行从新编码:bash

[功能] 微信

对于给定文件把它的内容从一种编码转换成另外一种编码。 编码

[描述] spa

-f encoding :把字符从encoding编码开始转换。 code

-t encoding :把字符转换到encoding编码。 blog

-l :列出已知的编码字符集合 utf-8

-o file :指定输出文件 

-c :忽略输出的非法字符 

-s :禁止警告信息,但不是错误信息 

--verbose :显示进度信息 

-f和-t所能指定的合法字符在-l选项的命令里面都列出来了。 

 

[举例] 

*列出当前支持的字符编码: 

#iconv -l 

*将文件file1转码,转后文件输出到fil2中: 

#iconv  -f EUC-JP-MS -t UTF-8 file1 -o file2 //没-o那么会输出到标准输出. 

*实际需求,从hive中取出的数据是utf8的,要load到mysql中,gbk编码。因此在load以前要先对文件进行转码。

复制代码
mysql_cmd = "iconv -c -f utf-8 -t gbk ./data/al_ver_" + yesterday_time + ".xls -o ./data/GBK_al_ver_" + yesterday_time + ".xls " print(mysql_cmd) os.system(mysql_cmd) mysql_cmd = "mysql -h60.28.200.78 -uroot -pyeelion -A LogStat_RT -e \"load data local infile \'./data/GBK_al_ver_" + yesterday_time + ".xls ' into table HiveData_508\"" print(mysql_cmd) os.system(mysql_cmd)
复制代码
相关文章
相关标签/搜索