GNU/Linux >> Belajar Linux >  >> Ubuntu

Tr:Ubah Apostrof Ke Ascii?

Saya mencoba mengonversi Tanda Kutipan Tunggal Kanan menjadi Apostrof menggunakan tr .

tr "`echo -e '\xE2\x80\x99'`" "`echo -e '\x27'`" < a > b

diberikan file yang disandikan UTF-8 bernama a yang berisi contoh ini:

We're not a different species
“All alone?” Jeth mentioned.

OS X menggunakan tr BSD dan menghasilkan hasil yang bagus:

We're not a different species
“All alone?” Jeth mentioned.

Ubuntu menggunakan GNU tr dan menghasilkan hasil buruk ini:

We'''re not a different species
''<9C>All alone?''<9D> Jeth mentioned.

Bagaimana saya bisa mencapai konversi ini di Ubuntu?

Jawaban yang Diterima:

Anda dapat mencoba beberapa alat lain, seperti sed :

$ sed "s/’/'/g" <a
We're not a different species
“All alone?” Jeth mentioned.

Atau, karena kita melakukan terjemahan sederhana, gunakan y perintah untuk sed :

$ sed "y/’/'/" <a
We're not a different species
“All alone?” Jeth mentioned.

GNU tr tidak bekerja mungkin karena:

Saat ini tr sepenuhnya hanya mendukung karakter byte tunggal.
Akhirnya akan mendukung karakter multibyte; ketika itu terjadi, -C opsi akan menyebabkannya melengkapi set karakter, sedangkan -c akan menyebabkannya melengkapi himpunan nilai. Perbedaan ini akan
penting hanya jika beberapa nilai bukan karakter, dan ini mungkin
hanya di lokal yang menggunakan penyandian multibyte bila masukan berisi
kesalahan penyandian.

Dan adalah karakter multibyte:

$ echo -n \' | wc -c
1
$ echo -n ’ | wc -c  
3

Ubuntu
  1. Instal Versi Paket yang Berbeda?

  2. Bagaimana Ubuntu Berbeda Dari Debian?

  3. Bagaimana Mengubah Strip Png Menjadi Gif?

  1. 3 Metode Berbeda Untuk Meng-upgrade Ubuntu Ke Versi Terbaru

  2. Mengapa Ls -l Menghasilkan Ukuran Yang Berbeda Dari Ls -s?

  3. Bagaimana Mengonversi File Suara Menjadi Opus?

  1. Berbagai cara Memperbarui Ubuntu 20.04 / 18.04

  2. Berbagai Cara Menginstal Perangkat Lunak di Ubuntu Linux

  3. Periksa Versi Ubuntu menggunakan Metode Berbeda