端末:UTF-8テキストの動作を理解するのに役立ちます。

端末:UTF-8テキストの動作を理解するのに役立ちます。

私はUbuntuシステムで観察される次の動作を理解しようとしています。次の2つのファイルを考えてみましょう。

$ hexdump -C 1.txt
00000000  d9 82 d8 a8 d8 a7 d9 86  d9 8a 5e d9 84 d9 86 d8  |..........^.....|
00000010  b2 d8 a7 d8 b1 5d 31                              |.....]1|
00000017

そして

$ hexdump -C 2.txt
00000000  d9 82 d8 a8 d8 a7 d9 86  d9 8a 5e d9 84 d9 86 d8  |..........^.....|
00000010  b2 d8 a7 d8 b1 5d 20                              |.....] |
00000017

違いがあるかどうかを確認できます。

$ cmp 1.txt 2.txt
1.txt 2.txt differ: byte 23, line 1

しかし、これが私が見るものです:

$ echo $LANG
C.UTF-8
$ cat 1.txt
قباني^لنزار]1
$ cat 2.txt
قباني^لنزار]

私は本当にこの行動を理解していません。 utf-8ストリームには、ALM(アラビア文字表示)Unicode文字またはRLM(右から左のマーカー)は表示されません。参考までに:

  • ALMUTF-8d89cでは
  • RLMUTF-8ではe2808f

誰かが私が見ている行動を説明できますか?

参考までに:

$ head -3 /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"

そして

$ echo $TERM
xterm-256color
$ echo $SHELL
/bin/bash
$ bash --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)

関連情報