8

ロシア語のメッセージでエラーになるコードがあります。

例えば:

Неверно составлен 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をエンコードしないように「伝える」にはどうすればよいですか?

4

2 に答える 2

11

いくつか試した後、解決策を見つけました。

echo -e-- 16 進数ではなく UTF を取得します。

tailf ... | while read line; do command; done;-- tailf の出力を 1 行ずつ読み取る

read -r-- 変換エスケープ シーケンスを避けるため。

したがって、結果は次のとおりです。

tailf /var/log/apache2/error.log | while read -r line; do echo -e "$line"; done;
于 2013-11-05T01:56:54.977 に答える