我的代码可能会出现俄语短信错误。
例如:
Неверно составлен limit
但是error.log包含:
\xd0\x9d\xd0\xb5\xd0\xb2\xd0\xb5\xd1\x80\xd0\xbd\xd0\xbe \xd1\x81\xd0\xbe\xd1\x81\xd1\x82\xd0\xb0\xd0\xb2\xd0\xbb\xd0\xb5\xd0\xbd limit
有没有办法正常读取tailf error.log(使用sed
或其他内容)?
或者我如何“告诉”apache不编码utf符号error.log?
答案 0 :(得分:9)
经过几次尝试,我找到了解决方案。
echo -e
- 获取十六进制的utf。
tailf ... | while read line; do command; done;
- 按行读取tailf的输出
read -r
- 避免转换转义序列。
所以,结果是:
tailf /var/log/apache2/error.log | while read -r line; do echo -e "$line"; done;
答案 1 :(得分:1)