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

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

2
ฉันจะตั้งค่าการเข้ารหัสเริ่มต้นของ VIM เป็น UTF-8 ได้อย่างไร
ฉันต้องการมีส่วนร่วมในโครงการโอเพนซอร์สที่ให้บริการสตริงที่แปล หนึ่งในความต้องการของพวกเขาคือผู้ร่วมให้ข้อมูลต้องใช้ UTF-8 เพื่อเข้ารหัสไฟล์ PO ฉันใช้ VIM 7.3 บน Linux ฉันจะแน่ใจได้อย่างไรว่าการเข้ารหัสของ VIM ถูกตั้งค่าเป็น UTF-8 ดังนั้นฉันจึงสามารถแก้ไขและบันทึกไฟล์. po ได้อย่างถูกต้อง

6
การกรอง utf8 ที่ไม่ถูกต้อง
ฉันมีไฟล์ข้อความในการเข้ารหัสที่ไม่รู้จักหรือแบบผสม ฉันต้องการดูบรรทัดที่มีลำดับไบต์ที่ไม่ถูกต้อง UTF-8 (โดยไพพ์ไฟล์ข้อความลงในบางโปรแกรม) เท่ากันฉันต้องการกรองบรรทัดที่ถูกต้อง UTF-8 ในคำอื่น ๆ ฉันกำลังมองหาgrep [notutf8] ทางออกที่ดีที่สุดคือพกพาได้สั้นและปรับเปลี่ยนได้ทั่วไปสำหรับการเข้ารหัสอื่น ๆ แต่ถ้าคุณรู้สึกว่าวิธีที่ดีที่สุดคือการอบในนิยามของ UTF-8ไปได้เลย

4
อักขระ ^ M เรียกว่าอะไร
TexPad กำลังสร้างมัน ฉันรู้ว่ามันอยู่ภายใต้กำหนดเวลาบางส่วน ฉันจำไม่ได้ว่ามันคือชื่อ ตัวละครสีน้ำเงิน: ฉันแค่ต้องการเอาออกเป็นจำนวนมากจากเอกสารของฉัน คุณพิมพ์มันได้อย่างไร

3
ฉันจะทดสอบการเข้ารหัสไฟล์ข้อความได้อย่างไร ... มันถูกต้องและมันคืออะไร?
ฉันมี.htmไฟล์หลายไฟล์ที่เปิดในGeditโดยไม่มีการเตือน / ข้อผิดพลาดใด ๆ แต่เมื่อฉันเปิดไฟล์เดียวกันนี้Jeditมันจะเตือนฉันเกี่ยวกับการเข้ารหัส UTF-8 ที่ไม่ถูกต้อง ... แท็ก meta ของ HTML ระบุว่า "charset = ISO-8859-1" Jedit อนุญาตให้ใช้รายการการเข้ารหัสทางเลือกและรายการการเข้ารหัสเครื่องตรวจจับอัตโนมัติ (ปัจจุบันคือ "BOM XML-PI") ดังนั้นปัญหาในทันทีของฉันจึงได้รับการแก้ไข แต่นี่ทำให้ฉันคิดถึง: จะเกิดอะไรขึ้นถ้าข้อมูลเมตาไม่อยู่ที่นั่น? เมื่อข้อมูลการเข้ารหัสไม่สามารถใช้งานได้มีโปรแกรม CLI ที่สามารถ "เดาได้ดีที่สุด" ซึ่งการเข้ารหัสอาจใช้หรือไม่ และถึงแม้ว่ามันจะเป็นปัญหาที่แตกต่างออกไปเล็กน้อย มีโปรแกรม CLI ซึ่งทดสอบความถูกต้องของการเข้ารหัสที่รู้จักหรือไม่

4
echo bytes เป็นไฟล์
ฉันกำลังพยายามเชื่อมต่อ rasberry Pi ของฉันกับจอแสดงผลบางตัวโดยใช้บัส i2c ในการเริ่มต้นฉันต้องการเขียนเนื้อหาด้วยตนเองโดยเฉพาะอย่างยิ่งไบต์กับไฟล์ คุณเขียนไบต์ที่ต้องการลงไฟล์ได้อย่างไร? ฉันได้อ่านแล้วและฉันคิดว่าปัญหาของฉันควรได้รับการแก้ไขโดยสิ่งนี้ echo -n -e \x66\x6f\x6f > byteFileForNow อย่างไรก็ตามเมื่อฉันเปิดไฟล์ด้วยนาโนแทนที่จะเป็นฟูฉันเห็น: x66x6fx6f ดังนั้นแบ็กสแลชจึงหนีไปได้ แต่ไม่ใช่ไบท์เอง ฉันก็ลองแบบเดียวกันโดยไม่ใช้-eคราวนี้ฉันเลยจะได้เห็นภาพ\ x66 \ x6f \ x6fแต่กลับเหมือนเดิม ดังนั้นเสียงก้องคือการหลีกเลี่ยงแบ็กสแลช, แบ็กสแลชคนเดียวและแบ็กสแลชโดยไม่คำนึงว่าควรจะเป็นอะไร ความคิดวิธีการแก้ไขปัญหานี้? ตามหน้าคนที่ควรจะทำสิ่งที่ฉันกำลังมองหา

3
การเข้ารหัสชุดอักขระใดที่ใช้สำหรับชื่อไฟล์และเส้นทางบน Linux
มันขึ้นอยู่กับระบบไฟล์ที่ฉันใช้หรือไม่? ตัวอย่างเช่น ext2 / ext3 / ext4 แต่จะเกิดอะไรขึ้นเมื่อฉันใส่หนึ่งในซีดี "joliet" กับ ISO 9660 ฉันได้ยินมาว่า POSIX มีข้อมูลจำเพาะบางอย่างสำหรับการเข้ารหัสชุดอักขระของชื่อไฟล์หรือไม่ โดยพื้นฐานแล้วสิ่งที่ฉันสงสัยคือถ้าฉันได้รับชื่อไฟล์ที่เข้ารหัส UTF-8 ฉันต้องทำอะไรในการประมวลผล / การแปลงข้อมูลก่อนที่จะส่งต่อไปยังไฟล์ I / O API ใน Linux

2
ค้นหา (1): สัญลักษณ์ตัวแทนของดาวมีการใช้งานอย่างไรเพื่อให้ล้มเหลวในชื่อไฟล์บางส่วน
ในระบบไฟล์ที่ชื่อไฟล์อยู่ใน UTF-8 ฉันมีไฟล์ที่มีชื่อผิดพลาด มันจะแสดงเป็น: D�sinstaller, ชื่อจริงตาม zsh D$'\351'sinstaller:, Latin1 สำหรับDésinstaller, ตัวเองป่าเถื่อนฝรั่งเศสสำหรับ "ถอนการติดตั้ง" Zsh จะไม่เข้าคู่กับมัน[[ $file =~ '^.*$' ]]แต่จะจับคู่กับก้อนกลม*- นี่คือพฤติกรรมที่ฉันคาดหวัง ตอนนี้ฉันยังคงคาดหวังว่าจะพบมันเมื่อทำงานfind . -name '*'- ในความเป็นจริงฉันไม่เคยคาดหวังว่าชื่อไฟล์จะล้มเหลวในการทดสอบนี้ อย่างไรก็ตามด้วยLANG=en_US.utf8ไฟล์ไม่ปรากฏขึ้นและฉันต้องตั้งค่าLANG=C(หรือen_USหรือ'') เพื่อให้มันทำงาน คำถาม: การดำเนินการที่อยู่เบื้องหลังคืออะไรและฉันจะคาดการณ์ผลลัพธ์ได้อย่างไร ข้อมูล: Arch Linux 3.14.37-1-lts, find (GNU findutils) 4.4.2

4
จะระบุตัวอักษรโดยใช้รหัสเลขฐานสิบหกใน `grep 'ได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Unix & Linux Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันใช้คำสั่งต่อไปนี้เพื่อตั้งค่าช่วงอักขระ grep สำหรับรหัสเลขฐานสิบหก 0900 (แทนअ) ถึง 097F (แทนव) ฉันจะใช้รหัสเลขฐานสิบหกแทนअและवได้อย่างไร bzcat archive.bz2 | grep -v '<[अ-व]*\s' | tr '[:punct:][:blank:][:digit:]' '\n' | uniq | grep -o '^[अ-व]*$' | sort -f | uniq -c | sort -nr | head -50000 | …

3
ทำความเข้าใจเกี่ยวกับการเข้ารหัสชื่อไฟล์ Unix
ฉันมีความเข้าใจยากว่าการเข้ารหัสชื่อไฟล์ทำงานอย่างไร ในยูนิกซ์ฉันพบคำอธิบายที่ขัดแย้ง ชื่อไฟล์จะถูกเก็บไว้เป็นตัวละคร เพื่ออ้างอิงคำตอบอื่น: คำถามหลายข้อเกี่ยวกับการเข้ารหัสอักขระระบบไฟล์บน linux […] ดังที่คุณพูดถึงคำถามของคุณชื่อไฟล์ UNIX เป็นเพียงลำดับของอักขระ เคอร์เนลไม่รู้อะไรเกี่ยวกับการเข้ารหัสซึ่งเป็นแนวคิดของพื้นที่ผู้ใช้ (เช่นระดับแอปพลิเคชัน) หากชื่อไฟล์ถูกจัดเก็บเป็นตัวอักษรจะต้องมีการเข้ารหัสบางอย่างเนื่องจากในที่สุดชื่อไฟล์จะต้องลงท้ายด้วยลำดับบิตหรือไบต์บนดิสก์ หากผู้ใช้สามารถเลือกการเข้ารหัสใด ๆเพื่อแมปอักขระกับลำดับไบต์ที่ป้อนไปยังเคอร์เนลเป็นไปได้ที่จะสร้างลำดับไบต์ใด ๆสำหรับชื่อไฟล์ที่ถูกต้อง สมมติว่าต่อไปนี้: ผู้ใช้ใช้การเข้ารหัสแบบสุ่มXซึ่งแปลไฟล์fooเป็นลำดับไบต์αและบันทึกลงดิสก์ อีกประการหนึ่งการใช้งานของผู้ใช้การเข้ารหัสY ในการเข้ารหัสนี้αแปลเป็น/ซึ่งไม่อนุญาตให้ใช้เป็นชื่อไฟล์ อย่างไรก็ตามสำหรับผู้ใช้คนแรกไฟล์นั้นถูกต้อง ฉันคิดว่าสถานการณ์นี้ไม่สามารถเกิดขึ้นได้ ชื่อไฟล์จะถูกจัดเก็บเป็นไบนารี blobs เพื่ออ้างอิงคำตอบอื่น: การ เข้ารหัสชุดอักขระใดที่ใช้สำหรับชื่อไฟล์และเส้นทางบน Linux ดังที่ผู้อื่นระบุไว้ไม่มีคำตอบสำหรับเรื่องนี้จริงๆ: ชื่อไฟล์และเส้นทางไม่มีการเข้ารหัส ระบบปฏิบัติการเกี่ยวข้องเฉพาะกับลำดับของไบต์เท่านั้น แอปพลิเคชั่นส่วนบุคคลอาจเลือกที่จะตีความว่าเป็นการเข้ารหัสในบางวิธี แต่สิ่งนี้แตกต่างกันไป หากระบบไม่จัดการกับตัวละครห้ามมีการห้ามเฉพาะอักขระ (เช่น/หรือNULL) ในชื่อไฟล์ได้อย่างไร ไม่มีแนวคิดเกี่ยวกับ/ การเข้ารหัส คำอธิบายจะเป็นระบบไฟล์ที่สามารถจัดเก็บชื่อไฟล์ที่มี ตัวอักษรใด ๆและเป็นเพียงโปรแกรมผู้ใช้ที่ใช้การเข้ารหัสเข้าบัญชีที่จะทำให้หายใจไม่ออกในชื่อไฟล์ที่มีอักขระที่ไม่ถูกต้อง ซึ่งในที่สุดก็หมายถึงว่าระบบไฟล์และเคอร์เนลกระป๋องไม่มีปัญหาใด ๆ /ชื่อจับไฟล์ที่มี ฉันก็คิดว่านี่เป็นสิ่งที่ผิด การเข้ารหัสเกิดขึ้นที่ใดและข้อ จำกัด ถูกวางที่ใดที่ไม่อนุญาตให้ใช้อักขระเฉพาะ

5
เหตุใดอักขระบางตัวจึงแสดงเป็นสี่เหลี่ยมใน Chrome
ตัวอย่างเช่นในเครื่องมือ dev ฉันได้รับสิ่งที่ชอบ: บางส่วนของสี่เหลี่ยมจัตุรัสเหล่านี้อยู่ที่ท้ายบรรทัดในตอนแรกฉันคิดว่ามันเป็นรถที่ส่งคืน แต่มันกลับกลายเป็นว่าพวกเขาไม่ได้ นอกจากนี้สี่เหลี่ยมจะปรากฏหลัง=หรือ>ในหลาย ๆ ที่ที่ไม่มีการขึ้นบรรทัดใหม่และการดูไฟล์ในโปรแกรมแก้ไขเลขฐานสิบหกแสดงให้เห็นว่าไม่มีอักขระใด ๆ ระหว่าง=และ"(เช่นid="แสดงเป็นid=? ") นอกจากนี้ยังปรากฏขึ้นเป็นครั้งคราวในหน้าเว็บเช่นฉันเห็น: ผมคัดลอกประโยคที่มองมันในตัวแก้ไขฐานสิบหกและอีกครั้งมีเป็นตัวละครที่ไม่มีระหว่างและe :ไม่มีอะไรปรากฏขึ้นในซอร์สโค้ดเช่นกัน ฉันไม่เคยเห็นสิ่งนี้มาก่อนและมันเป็นเพียงตั้งแต่ฉันติดตั้ง arch อีกครั้งเมื่อไม่กี่วันที่ผ่านมา Chrome เป็น: รุ่น19.0.1084.15 dev Arch คือเคอร์เนล3.3.1-1-ARCH,x86_64 locale.genมีโลen_GBแคลที่ไม่ใส่เครื่องหมายข้อคิดเห็น (ทั้งUTF-8และISO-8859-1) การเข้ารหัสใน Chrome จะใช้ค่าเริ่มต้นเป็นISO-8859-1แต่จะเปลี่ยนเป็นUTF-8ไม่มีความแตกต่าง นี่คือไฟล์ html ที่ฉันใช้: test.html การแก้ไขจะดีมากคำอธิบายจะดีมากยืนยันว่านี่เป็น (หรือไม่ใช่) เพียงแค่ปัญหาเกี่ยวกับการตั้งค่าของฉันก็จะดีเช่นกัน แก้ไข: หลังจากตรวจสอบแบบอักษรฉันพบว่าในทั้งสองกรณีพยายามใช้ arial ซึ่งใน arch เป็นส่วนหนึ่งของttf-ms-fontsแพ็คเกจ การติดตั้งที่ทำให้ตัวอักษรเปลี่ยน แต่สี่เหลี่ยมยังคงอยู่ (แม้ว่าจะมีรูปร่างที่แตกต่างกัน) ในทั้งสองกรณีแบบอักษรนั้นไม่เป็นไปตามแบบอักษรเริ่มต้นสำหรับระบบ

2
tr บ่น“ ลำดับไบต์ที่ผิดกฎหมาย”
ฉันเป็นแบรนด์ใหม่สำหรับ UNIX และฉันใช้ "The Mac OS X Command Line" ของ Kirk McElhearn เพื่อสอนตัวเองด้วยคำสั่งบางอย่าง ฉันพยายามใช้trและgrepเพื่อให้ฉันสามารถค้นหาสตริงข้อความในเอกสาร MS-Office Word ปกติ $ tr '\r' '\n' < target-file | grep search-string แต่ผลตอบแทนทั้งหมดคือ: Illegal byte sequence. robomechanoid:Position-Paper-Final-Draft robertjralph$ tr '\r' '\n' < Position-Paper-Final-Version.docx | grep DeCSS tr: Illegal byte sequence robomechanoid:Position-Paper-Final-Draft robertjralph$ ฉันใช้สคริปต์บรรทัดเดียวกับที่ฉันสร้างขึ้นviและทำการค้นหาอย่างถูกต้อง

4
ระบุไฟล์ที่มีอักขระที่ไม่ใช่ ASCII หรือไม่สามารถพิมพ์ได้ในชื่อไฟล์
ในไดเรกทอรีขนาด 80GB ที่มีประมาณ 700,000 ไฟล์มีชื่อไฟล์บางส่วนที่มีอักขระที่ไม่ใช่ภาษาอังกฤษในชื่อไฟล์ นอกเหนือจากการสืบค้นผ่านรายการไฟล์อย่างตั้งใจแล้ว: วิธีง่ายๆในการแสดงรายการหรือระบุชื่อไฟล์เหล่านี้คืออะไร? วิธีสร้างตัวอักษรที่ไม่ใช่ภาษาอังกฤษที่พิมพ์ได้ - ตัวอักษรเหล่านั้นที่ไม่ได้อยู่ในช่วงที่พิมพ์ได้man ascii(ดังนั้นฉันสามารถทดสอบว่าไฟล์เหล่านี้ถูกระบุ)?


5
การแปลงไฟล์ UTF-8 เป็น ASCII (ความพยายามอย่างดีที่สุด)
ฉันมีไฟล์ใน UTF-8 ที่มีข้อความเป็นหลายภาษา ส่วนใหญ่เป็นชื่อของผู้คน ฉันต้องแปลงเป็น ASCII และฉันต้องการผลลัพธ์เพื่อให้ดูเหมาะสมที่สุด มีวิธีการแปลงจากการเข้ารหัสที่กว้างขึ้นเป็นวิธีที่แคบกว่า การแปลงที่ง่ายที่สุดคือการแทนที่อักขระที่ไม่ใช่ ASCII ทั้งหมดด้วยตัวยึดตำแหน่งบางตัวเช่น '_' ถ้าฉันรู้ภาษาที่ไฟล์นั้นเขียนมีความเป็นไปได้เพิ่มเติมเช่นโรมัน เครื่องมือ Unix หรือไลบรารีภาษาการเขียนโปรแกรมที่มีอยู่ใน Unix สามารถให้การแปลงที่ดี (พยายามที่สุด) จาก UTF-8 เป็น ASCII ได้ไหม ข้อความส่วนใหญ่เป็นภาษาที่ใช้ภาษาละตินยุโรป

6
การสร้างรหัสผ่านแบบสุ่ม ทำไมพกพานี้ไม่ได้?
ฉันต้องการสร้างรหัสผ่านแบบสุ่มและฉันชอบ: </dev/urandom tr -dc [:print:] | head -c 64 บนแล็ปท็อปของฉันซึ่งใช้งาน Ubuntu สิ่งนี้จะสร้างตัวอักษรที่พิมพ์ได้ตามที่ตั้งใจ แต่เมื่อฉันเข้าสู่เซิร์ฟเวอร์ของโรงเรียนซึ่งรัน Red Hat Enterprise Linux และเรียกใช้ที่นั่นฉันจะได้ผลลัพธ์เช่น3!ri�b�GrӴ��1�H�<�oM����&�nMC[�Pb�|L%MP�����9��fL2q���IFmsd|l�Kที่จะไม่ทำเลย เกิดอะไรขึ้นที่นี่

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