web-dev-qa-db-ja.com

Bashは\ xC3 \ x89をÉに変換しますか?

スクリプト内でiwlist wlo1 scan | grep ESSIDを実行しています。

フランス語の文字を次の形式で表示します

Éは\xC3\x89、éは\xC3\xA9

この形式が何と呼ばれるかわかりません。 nicode変換の回答echo -ne '\xC3\xA9' | iconv -f utf-16beを使用してみましたが、に変換されました。

この形式の正式名称は何ですか?それをどのようにbashに変換できますか?

4

iwlistは、ASCII非制御文字に対応しないすべてのバイトを\xHHとして表示します。ここで、HHは16進数のバイト番号です。 。

そのエンコードを元に戻すには、iwlistの出力をパイプして

Perl -pe 's/\\x([\da-f]{2})/chr(hex($1))/gie'

バイト0xc3に続く0xa9は、é文字のUTF-8エンコーディングを構成します。

ロケールもUTF-8エンコーディングを使用している場合、Perlの出力にはそのé文字が表示されます。そうでない場合(UTF-8が標準である可能性は低い)、いつでもPerlの出力をiconv -f utf-8にパイプして、from UTF-8をで使用される文字エンコーディングに変換できます。あなたのロケール。

1