質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux Mint

Linux Mintは、使いやすいLinuxシステムの提供を目的としたLinuxディストリビューションです。UbuntuとDebianをベースにしており、Ubuntuのリポジトリを共有しています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

6回答

751閲覧

ターミナル入力 > テキスト出力の文字化けについて

auto_miss56

総合スコア24

Linux Mint

Linux Mintは、使いやすいLinuxシステムの提供を目的としたLinuxディストリビューションです。UbuntuとDebianをベースにしており、Ubuntuのリポジトリを共有しています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2019/03/19 14:58

linuxターミナルにて

$ cal 3 2019 > 32019.txt

出力し、テキストエディターで開くと

3月 2019 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 _1_9 20 21 22 23 24 25 26 27 28 29 30 31

と文字化けが起こります

また

$ cal 4 2019 > 42019.txt

出力は

4月 2019 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

と正常に見えます

他にも

$ cal 2019 > 2019.txt

とすると

2019 1月 2月 3月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 1 2 1 2 6 7 8 9 10 11 12 3 4 5 6 7 8 9 3 4 5 6 7 8 9 13 14 15 16 17 18 19 10 11 12 13 14 15 16 10 11 12 13 14 15 16 20 21 22 23 24 25 26 17 18 19 20 21 22 23 17 18 _1_9 20 21 22 23 27 28 29 30 31 24 25 26 27 28 24 25 26 27 28 29 30 31 4月 5月 6月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 4 1 7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8 14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15 21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22 28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29 30 7月 8月 9月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7 7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14 14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21 21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28 28 29 30 31 25 26 27 28 29 30 31 29 30 10月 11月 12月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 1 2 1 2 3 4 5 6 7 6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14 13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21 20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28 27 28 29 30 31 24 25 26 27 28 29 30 29 30 31

と3月だけが文字化けで出力されます
仕様でしょうか?
ご存じの方ご教示願います

  • テキストエディター xed 1.8.3
  • テキストファイルエンコーディング UTF-8
$ cat /etc/lsb-release DISTRIB_ID=LinuxMint DISTRIB_RELEASE=19 DISTRIB_CODENAME=tara DISTRIB_DESCRIPTION="Linux Mint 19 Tara"
$ echo $LANG ja_JP.UTF-8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

さすがにこれは「文字化け」とは言わないでしょう。

端末制御用のエスケープシーケンスを出さないためには、
TERM=dumb cal 3 2019のように、TERM環境変数をセットすると良いです。

が、おそらく_1_9というのはエスケープシーケンスじゃなくて、_バックスペース1_バックスペース9で、下線と数字を重ね打ちしようとしているものと思いますので、TERM=dumbでも出るかも。
cal 3 2019 | col -b > 32019.txtと、colコマンドでバックスペース(とその直前の文字)を削除できます。

投稿2019/03/19 21:28

編集2019/03/19 23:58
otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

たんに本日を示すための反転のエスケープ文字が出ているってことじゃないでしょうか
コンソールに出すとこうなります
イメージ説明

投稿2019/03/19 15:11

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

auto_miss56

2019/03/19 15:57

ありがとうございました とても勉強になりました
guest

0

ansi escape シーケンスを削除するには いくつかの方法があります。

  • Removing ANSI color codes from text stream

https://superuser.com/questions/380772/

  • How to remove ^[, and all of the escape sequences in a file using linux shell scripting

https://stackoverflow.com/questions/6534556/

unix のコマンドの流儀ちして、端末への出力時にエスケースシーケンスで色付き文字を出すコマンドは、ファイルへのリダイレクトや パイプで使う場合は エスケースシーケンスを出さないようにしているものが多いです。
(cal はそうなっていない? -h でエスケープシーケンス無しにできる)

操作例

イメージ説明

ls -G で色付きになります。
ls -G > /tmp/1.txt とすると色はなくなります。

cal は端末出力時は今日の部分がハイライトになります。
ファイルへリダイレクトすると色はなくなりますが、下線が出ます。
less -R は エスケープシーケンスを生かして表示してくれます。
stri-ansi でエスケープシーケンスを削除できます。(npm install --global strip-ansi-cli でインストールできます)

投稿2019/03/19 19:30

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

tara19.0 でのcal の ハイライトを消すオプションは動作しないとのこと
結論

$ncal -bh 3 2019 > 32019.txt

で正常出力できました

投稿2019/03/19 16:07

auto_miss56

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

cal -h 3 2019 > test.txt

のように、 -h オプションをつけると上手くいくかもしれません。

投稿2019/03/19 15:57

YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

auto_miss56

2019/03/19 16:04

上手くいきませんでした
guest

0

tara19.0 でのcal の ハイライトを消すオプションは動作しないとのこと
結論

$ncal -bh 3 2019 > 32019.txt

で正常出力できました

投稿2019/03/19 15:56

編集2019/03/19 16:01
auto_miss56

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問