คำถามติดแท็ก character-encoding

คำถามที่เกี่ยวข้องกับการแสดงตัวละครและชุดอักขระต่าง ๆ เช่น: ASCII, UTF-8, EBCDIC และอื่น ๆ มักพบเมื่อย้ายไฟล์ระหว่างระบบปฏิบัติการที่เข้ารหัสบรรทัดใหม่ด้วยการขึ้นบรรทัดใหม่และ / หรืออักขระขึ้นบรรทัดใหม่

4
วิธีการเปลี่ยนการเข้ารหัสจากข้อความที่ไม่ใช่ ASCII-Extended Extended ASCII, ด้วยตัวต่อบรรทัด CRLF เป็น UTF-8
ฉันมีไฟล์ txt: $ file -i x.txt x.txt: text/plain; charset=unknown-8bit $ file x.txt x.txt: Non-ISO extended-ASCII text, with CRLF line terminators และมีอักขระบางตัวที่เข้ารหัสไม่ถูกต้อง: trwa³y, sta³y, usuwaæ ฉันจะเปลี่ยนการเข้ารหัสของไฟล์นี้เป็น UTF-8 ได้อย่างไร ฉันได้ลองวิธีต่อไปนี้แล้ว: $ iconv -f ASCII -t UTF-8 x.txt puiconv: illegal input sequence at position 4 บางทีฉันควรใช้extended ASCII( high ASCII) แต่หาไม่พบในiconvรายการเข้ารหัสของ

4
เปลี่ยนชื่อไฟล์จำนวนมาก (หรือแสดงอย่างถูกต้อง) ด้วยอักขระพิเศษ
ฉันมีกลุ่มไดเรกทอรีและไดเรกทอรีย่อยที่มีไฟล์ที่มีอักขระพิเศษเช่นไฟล์นี้: robbie@phil:~$ ls test�sktest.txt test?sktest.txt ค้นหาพบลำดับการหลบหนี: robbie@phil:~$ find test�sktest.txt -ls 424512 4000 -rwxr--r-x 1 robbie robbie 4091743 Jan 26 00:34 test\323sktest.txt เหตุผลเดียวที่ฉันสามารถพิมพ์ชื่อของพวกเขาบนคอนโซลได้ก็เพราะความสมบูรณ์ของแท็บ นอกจากนี้ยังหมายความว่าฉันสามารถเปลี่ยนชื่อพวกเขาด้วยตนเอง (และตัดอักขระพิเศษ) ฉันได้ตั้งค่า LC_ALL เป็น UTF-8 ซึ่งดูเหมือนจะไม่ช่วย (ยังไม่ได้อยู่ในเปลือกใหม่): robbie@phil:~$ echo $LC_ALL en_US.UTF-8 ฉันกำลังเชื่อมต่อกับเครื่องโดยใช้ ssh จาก mac ของฉัน มันคือการติดตั้ง Ubuntu: robbie@phil:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=7.10 DISTRIB_CODENAME=gutsy DISTRIB_DESCRIPTION="Ubuntu 7.10" Shell …

2
แปลง. docx เป็น. pdf ด้วย pandoc
ฉันพยายามแปลง. docx ที่ได้รับทางไปรษณีย์เป็น pdf ที่ถูกต้องโดยใช้ pandoc (ฉันใช้ GNU / Linux) ฉันมีข้อผิดพลาดเกี่ยวกับการเข้ารหัสอักขระ: $ pandoc file.docx -o file.pdf pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream ฉันพยายามระบุการเข้ารหัส: $ file -i file .docx file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary ฉันประหลาดใจเล็กน้อยcharset=binary(ฉันคาดหวังcharset=iso8859-15) อย่างไรก็ตามฉันพยายามแปลง. docx เป็น utf8 อยู่ดีและมันไม่ทำงาน: $ iconv -t utf-8 file.docx P! $iconv: séquence d'échappement non …

2
คำสั่งเพื่อดึงรายการของอักขระในคลาสอักขระที่กำหนดในโลแคลปัจจุบัน
สิ่งที่อาจจะเป็นวิธีการที่จะดึงรายชื่อของตัวละครทุกตัวในชั้นเรียนตัวอักษรที่กำหนด (เช่นที่blank, alpha, digit... ) ในสถานที่ปัจจุบัน ตัวอย่างเช่น LC_ALL=en_GB.UTF-8 that-command blank ในอุดมคติบนระบบ Debian ของฉันจะแสดงสิ่งที่ชอบ: 09 U+0009 HORIZONTAL TAB 20 U+0020 SPACE e1 9a 80 U+1680 OGHAM SPACE MARK e1 a0 8e U+180E MONGOLIAN VOWEL SEPARATOR e2 80 80 U+2000 EN QUAD e2 80 81 U+2001 EM QUAD e2 80 82 U+2002 …

3
การเข้ารหัสอักขระรองรับมากขึ้น cat และน้อยกว่า
ฉันมีไฟล์ข้อความที่เข้ารหัสดังต่อไปนี้ตามfile: ข้อความ ISO-8859 ที่มีตัวต่อบรรทัด CRLF ไฟล์นี้มีข้อความภาษาฝรั่งเศสด้วยสำเนียง เปลือกของฉันสามารถแสดงการเน้นเสียงและemacsในโหมดคอนโซลสามารถแสดงการเน้นเสียงเหล่านี้ได้อย่างถูกต้อง ปัญหาของฉันที่more, catและlessเครื่องมือที่จะไม่แสดงไฟล์นี้ได้อย่างถูกต้อง ฉันเดาว่าหมายความว่าเครื่องมือเหล่านี้ไม่สนับสนุนชุดการเข้ารหัสอักขระนี้ มันเป็นเรื่องจริงเหรอ? เครื่องมือเหล่านี้รองรับการเข้ารหัสอักขระได้อย่างไร

6
ฉันจะแตกไฟล์ ZIP ที่มีชื่อภาษาฮิบรูอย่างถูกต้องได้อย่างไร?
มีคนส่งไฟล์ ZIP ที่มีไฟล์ที่มีชื่อภาษาฮิบรูมาให้ฉัน (และสร้างขึ้นใน Windows ไม่แน่ใจว่าใช้เครื่องมือใด) ฉันใช้ LXDE กับ Debian Stretch เครื่องมือจัดการเก็บถาวรของ Gnome จัดการเพื่อคลายซิปไฟล์ แต่ตัวอักษรฮีบรูนั้นอ่านไม่ออก ฉันคิดว่าฉันได้รับ UTF-8 octets ที่ขยายออกเป็นอักขระ Unicode เช่นฉันมีไฟล์ที่ชื่อมีสี่ตัวอักษรและ. doc พอเพียงและตัวละครคือ: 0x008E 0x0087 0x00887 0x0085 การใช้ยูทิลิตี unzip สำหรับบรรทัดคำสั่งนั้นยิ่งแย่กว่านั้น - มันปฏิเสธที่จะแตกไฟล์ออกมาโดยสิ้นเชิงโดยบ่นว่าเป็น "multibyte หรืออักขระตัวกว้างไม่ถูกต้องหรือไม่สมบูรณ์" ดังนั้นคำถามของฉันคือ: มียูทิลิตี้การแตกไฟล์อื่นที่จะแตกไฟล์ของฉันด้วยชื่อที่ถูกต้องหรือไม่? มีบางอย่างผิดปกติกับวิธีการบีบอัดไฟล์หรือเป็นเพียงความไม่เข้ากันของการใช้งาน ZIP หรือไม่ หรือแม้แต่ misfeature / bug ของยูทิลิตี้ ZIP ของ Linux? ฉันจะทำอย่างไรเพื่อให้ได้ชื่อไฟล์ที่ถูกต้องหลังจากคลายการบีบอัดโดยใช้ไฟล์ที่อ่านไม่ออก

1
อักขระต่างประเทศจะไม่แสดงใน SSH
ฉันประสบปัญหาในการใช้งานsshและเซิร์ฟเวอร์ระยะไกล (ซึ่งฉันไม่มีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบ) - โดยเฉพาะมีโฟลเดอร์สองสามโฟลเดอร์ที่มีข้อความภาษาเกาหลีและ Cyrillic เมื่อฉันแสดงเนื้อหาของโฟลเดอร์พาเรนต์ด้วยlsอักขระจะถูกหลีกเลี่ยงเป็น "?" อาจจะทราบได้ว่าตัวละครเกาหลีดูเหมือนจะหลบหนีออกไปได้มากกว่าจำนวนตัวอักษรที่ควรมี ฉันรู้ว่าโปรแกรมเทอร์มินัลที่ฉันใช้สามารถแสดงอักขระได้เช่นเดียวกับที่ใช้sftpแสดงมันอย่างสมบูรณ์ ปัญหาเกิดขึ้นกับทุกเครื่องที่ฉันได้ลอง สรุปเครื่องจักร เครื่องท้องถิ่น: Linux 2.6.32-5-686, i686 Debian GNU / Linux 6.0.2 (บีบ) มีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบ เซิร์ฟเวอร์ระยะไกล: Linux 2.6.32-bpo.5-amd64, x86_64 Debian GNU / Linux 5.0.8 (เงิน) ไม่มีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบหรือทางกายภาพ ฉันอาจพลาดสถิติสำคัญหรือข้อมูลอื่น ๆ ไปบ้างซึ่งในกรณีนี้ฉันขอโทษ ฉันค่อนข้างใหม่สำหรับคอมพิวเตอร์ที่ไม่ใช่ Windows ทั้งหมดดังนั้นฉันจึงแทบไม่รู้ว่าฉันกำลังทำอะไรที่นี่

2
ssh และการเข้ารหัสอักขระ
เมื่อฉันsshเข้าสู่ VPS ของฉันฉันได้irssiทำงานในหน้าจอ เมื่อมีคนส่งอักขระยูนิโค้ด (เช่น©หรือ€) irssiแสดงขยะเมื่อฉันใช้ผ่านหน้าจอในsshเซสชัน หากฉันเชื่อมต่อกับสิ่งนั้นirssiโดยใช้โมดูลพร็อกซีของ irssi จาก irssi ที่ทำงานบนเครื่องคอมพิวเตอร์ของฉันมันจะแสดงขึ้นอย่างถูกต้อง ในทำนองเดียวกันถ้าฉันใช้ ghci บน VPS (นอกจอ) และป้อนหนึ่งในตัวละครเหล่านั้นมันก็จะล่ม ดังนั้นเห็นได้ชัดว่ามีปัญหาการเข้ารหัสตัวอักษรของการเรียงลำดับบางอย่างกับการเชื่อมต่อของฉันกับ VPS ของฉันทั้งใน ssh หรือการตั้งค่าระบบ ฉันจะทราบได้อย่างไรว่าเกิดอะไรขึ้นและแก้ไขได้อย่างไร รายละเอียด: ระบบไคลเอนต์ Arch Linux x64 การเข้ารหัส UTF-8 ระบบ VPS เซิร์ฟเวอร์ Ubuntu 10.04 ใช้การเข้ารหัสที่ไม่รู้จัก ฉันจะหาสิ่งนี้ได้อย่างไร (ฉันต้องดูใน /etc/rc.conf เพื่อหา Arch)

3
วิธีการแปลงอิโมติคอนที่ระบุโดยรหัส U + xxxxx เป็น utf-8
อิโมติคอนดูเหมือนจะถูกระบุโดยใช้รูปแบบของ U + xxxxx โดยที่แต่ละ x เป็นเลขฐานสิบหก ตัวอย่างเช่นU + 1F615เป็นรหัส Unicode Consortium อย่างเป็นทางการสำหรับ "สับสนใบหน้า" 😕 เมื่อฉันสับสนบ่อยฉันมีความสัมพันธ์ที่ดีต่อสัญลักษณ์นี้ การแทนU + 1F615ทำให้ฉันสับสนเพราะฉันคิดว่าการเข้ารหัสที่เป็นไปได้สำหรับอักขระ Unicode ต้องใช้ 8, 16, 24 หรือ 32 บิตในขณะที่ 5 หลักเลขฐานสิบต้องมี 5x4 = 20 บิต ฉันได้ค้นพบว่าสัญลักษณ์นี้น่าจะเป็นสตริงเลขฐานสิบหกที่แตกต่างกันโดยสิ้นเชิงใน bash: $echo -n 😕 | hexdump 0000000 f0 9f 98 95 0000004 $echo -e "\xf0\x9f\x98\x95" 😕 …

3
ไม่สามารถใช้ `cut -c` (` --characters`) กับ UTF-8 ได้หรือไม่?
คำสั่งcutมีตัวเลือกในการทำงานกับตัวละครแทนของไบต์ที่มีตัวเลือก-c -bแต่ดูเหมือนจะไม่ทำงานในen_US.UTF-8สถานที่: ไบต์ที่สองให้อักขระ ASCII ตัวที่สอง (ซึ่งเข้ารหัสเหมือนกันใน UTF-8): $ printf 'ABC' | cut -b 2 B แต่ไม่ได้ให้อักขระที่สองในสามของอักขระที่ไม่ใช่ ASCII กรีกในโลแคล UTF-8: $ printf 'αβγ' | cut -b 2 � ว่าไม่เป็นไร - เป็นที่สองไบต์ ดังนั้นเรามองไปที่ตัวละครที่สองแทน: $ printf 'αβγ' | cut -c 2 � ดูหัก ด้วยการทดลองบางอย่างปรากฎว่าช่วง3-4แสดงตัวละครที่สอง: $ printf 'αβγ' | cut -c 3-4 β แต่นั่นก็เหมือนกับไบต์ …

3
การพิมพ์ทศนิยมให้เป็นอักขระ ASCII คำสั่งของฉันจะไม่แสดงผลตามที่ต้องการ
ฉันต้องการที่จะส่งออกสตริงของตัวละคร ASCII ทั้งหมดด้วยคำสั่งดังต่อไปนี้ for i in `seq 32 127`; do printf "%c" $i; done ผลลัพธ์ของคำสั่งข้างต้นคือ: 33333334444444444555555555566666666667777777777.............. เป็นตัวเลขตัวแรก (จากซ้าย) ของแต่ละหมายเลข เมื่อมองผ่านเว็บไซต์นี้ฉันได้พบกับคำตอบสำหรับปัญหาของฉันวิธีพิมพ์ตัวอักษร ASCII ที่พิมพ์ได้ทั้งหมดใน CLI? อย่างไรก็ตามฉันยังไม่เข้าใจว่าเพราะเหตุใดข้อมูลโค้ดต้นฉบับของฉันจึงไม่ส่งออกอักขระ ASCII ตามที่ต้องการ

2
iconv ลำดับการป้อนข้อมูลที่ผิดกฎหมาย - เพราะอะไร
ขณะที่พยายามจะแปลงไฟล์ข้อความลงในเทียบเท่า ASCII iconv: illegal input sequence at positionของฉันได้รับข้อความข้อผิดพลาดที่ คำสั่งที่ฉันใช้คือ iconv -f UTF-8 -t ascii//TRANSLIT file æตัวละครที่กระทำผิดคือ แฟ้มข้อความที่ตัวเองมีอยู่ที่นี่ ทำไมพูดลำดับผิดกฎหมาย อักขระอินพุตเป็นอักขระ UTF-8 ที่เหมาะสม (U + 00E6)

2
vim สามารถแสดงอักขระ ASCII เท่านั้นและถือว่าไบต์อื่นเป็นข้อมูลไบนารีได้หรือไม่
ฉันรู้อยู่แล้วว่าvim -bขึ้นอยู่กับสถานที่ที่ใช้มันจะแสดงอักขระหลายไบต์ (เช่น UTF-8) เป็นตัวอักษรเดียว ฉันvimจะขอให้แสดงเฉพาะอักขระที่พิมพ์ได้ของ ASCII และจัดการกับส่วนที่เหลือเป็นข้อมูลไบนารีไม่ว่าจะเป็นชุดอักขระหรือไม่

2
กลับมาไบนารีแทน html หรือไม่
ฉันใช้ wget เพื่อดาวน์โหลดหน้า html คงที่ เครื่องมือตรวจสอบ W3C บอกฉันว่าหน้านั้นเข้ารหัสใน UTF-8 แต่เมื่อฉันแมวไฟล์หลังจากดาวน์โหลดฉันได้รับพวงของไบนารีไร้สาระ ฉันใช้ Ubuntu และฉันคิดว่าการเข้ารหัสเริ่มต้นคือ UTF-8 นั่นคือสิ่งที่ไฟล์ภาษาของฉันดูเหมือนว่าจะพูด เหตุใดสิ่งนี้จึงเกิดขึ้นและฉันจะแก้ไขได้อย่างไร Content-Encoding: gzipนอกจากนี้ดูเหมือนว่า บางทีนี่อาจจะทำให้ต่าง นี่คือคำขอที่เรียบง่าย: wget https://www.example.com/page.html ฉันก็ลองทำเช่นนี้: wget https://www.example.com/page.html -q -O - | iconv -f utf-16 -t utf-8 > output.html ซึ่งส่งคืน: iconv: illegal input sequence at position 40 cat'ing ไฟล์คืนค่าไบนารีที่มีลักษณะดังนี้: l�?חu�`�q"�:)s��dġ__��~i��6n)T�$H�#���QJ ผลลัพธ์ของxxd output.html | …

5
วิธีตั้งค่าการเข้ารหัสทางเลือกเป็น UTF-8 ใน Firefox
ฉันเขียนเอกสาร markdown ของนอร์เวย์: $ file brukerveiledning.md brukerveiledning.md: UTF-8 Unicode text ฉันได้แปลงเป็น HTML โดยใช้markdownคำสั่ง: $ markdown > brukerveiledning.html < brukerveiledning.md $ file brukerveiledning.html brukerveiledning.html: UTF-8 Unicode text อย่างไรก็ตามFirefox ยืนยันที่จะใช้การเข้ารหัส "windows-1252" โดยทำลายอักขระที่ไม่ใช่ ASCII ฉันได้ลองตั้งค่าการเปลี่ยนการเข้ารหัสข้อความทางเลือกจาก "ค่าเริ่มต้นสำหรับตำแหน่งที่ตั้งปัจจุบัน" (ซึ่งในสหราชอาณาจักรควรเป็น ISO-8859-1 หรือ UTF-8) เป็น "Central European, ISO", "Central European, Microsoft "และ" อื่น ๆ (รวมถึงยุโรปตะวันตก) " สิ่งเหล่านี้ไม่สามารถแสดงæ, …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.