คำถามติดแท็ก utf-8

1
การใช้“ utf8 = ✓” ดีกว่าที่จะ“ utf8 = จริง” หรือไม่?
ฉันเพิ่งเห็น URI บางอย่างที่มีพารามิเตอร์การสืบค้น "utf8 = ✓" ความประทับใจครั้งแรกของฉัน (หลังจากคิดว่า "mmm, ดูดี") คือสิ่งนี้สามารถใช้เพื่อตรวจจับการเข้ารหัสอักขระที่ไม่สมบูรณ์ ดังนั้นนี่เป็นวิธีที่ดีกว่าในการแก้ไขปัญหาที่อาจเกิดขึ้นจากการเข้ารหัสอักขระหรือเป็นเพียงนักพัฒนาที่สนุกกับการแฮ็ค

2
จะตรวจจับการเข้ารหัสไฟล์ได้อย่างไร?
ในระบบไฟล์ของฉัน (Windows 7) ฉันมีไฟล์ข้อความบางไฟล์ (นี่คือไฟล์สคริปต์ SQL หากมีความสำคัญ) เมื่อเปิดด้วยNotepad ++ในเมนู "การเข้ารหัส" บางรายการถูกรายงานว่ามีการเข้ารหัส "UCS-2 Little Endian" และ "UTF-8 ที่ไม่มี BOM" บางส่วน ความแตกต่างที่นี่คืออะไร? พวกเขาทั้งหมดดูเหมือนจะเป็นสคริปต์ที่สมบูรณ์แบบ ฉันจะบอกได้อย่างไรว่าการเข้ารหัสไฟล์นั้นไม่มีแผ่นจดบันทึก ++

5
ข้อดีของการเลือกการเข้ารหัส ASCII ผ่าน UTF-8 คืออะไร
อักขระทั้งหมดใน ASCII สามารถเข้ารหัสได้โดยใช้ UTF-8 โดยไม่ต้องเพิ่มหน่วยความจำ (ทั้งคู่ต้องใช้หน่วยเก็บข้อมูลเป็นไบต์) UTF-8 มีประโยชน์เพิ่มเติมจากการสนับสนุนอักขระนอกเหนือจาก "ASCII-characters" หากเป็นกรณีที่ว่าทำไมเราจะเคยเลือกการเข้ารหัส ASCII กว่า UTF-8? มีกรณีการใช้งานเมื่อเราจะเลือก ASCII แทน UTF-8 หรือไม่?

5
UTF-8 จะสามารถรองรับภาษาต่างประเทศที่มีตัวละครใหม่นับล้านตัวได้หรือไม่?
ในกรณีที่มีการบุกรุกจากมนุษย์ต่างดาวและเราถูกบังคับให้สนับสนุนภาษาของพวกเขาในทุกระบบคอมพิวเตอร์ที่มีอยู่ของเรา UTF-8 ได้รับการออกแบบมาเพื่อให้สามารถใช้อักขระจำนวนมากได้หรือไม่? (แน่นอนเราไม่ทราบว่ามนุษย์ต่างดาวมีภาษาจริง ๆ มีวิธีสื่อสารกันหรือไม่ แต่เพื่อการโต้แย้งโปรดลองจินตนาการว่าพวกเขาทำ) ตัวอย่างเช่นหากภาษาของพวกเขาประกอบด้วยร่ายมนตร์ที่ค้นพบใหม่สัญลักษณ์และ / หรือการรวมตัวอักษร UTF-8 ในทางทฤษฎีสามารถขยายได้ในลักษณะที่ไม่แตกหักเพื่อรวมร่ายมนตร์ใหม่เหล่านี้และยังรองรับซอฟต์แวร์ที่มีอยู่ทั้งหมดหรือไม่ ฉันสนใจมากขึ้นถ้าร่ายมนตร์ไกลเกินขีด จำกัด ขนาดปัจจุบันและต้องการไบต์เพิ่มขึ้นเพื่อแทนร่ายมนตร์เดียว ในกรณีที่ไม่สามารถขยายUTF-8 ได้หรือไม่นั่นพิสูจน์ได้ว่าข้อได้เปรียบเดียวของ UTF-32 นั้นคือขนาดของตัวอักษรที่ต่ำกว่าหรือไม่?
86 unicode  utf-8 

6
ควรใช้ Latin-1 มากกว่า UTF-8 เมื่อพูดถึงการกำหนดค่าฐานข้อมูลหรือไม่?
เรากำลังใช้งาน MySQL ที่ บริษัท ที่ฉันทำงานอยู่และเราสร้างทั้งแอปพลิเคชันสำหรับลูกค้าและภายในโดยใช้ Ruby on Rails เมื่อฉันเริ่มทำงานที่นี่ฉันพบปัญหาที่ฉันไม่เคยพบมาก่อน ฐานข้อมูลบนเซิร์ฟเวอร์ที่ใช้งานถูกตั้งค่าเป็น Latin-1 ซึ่งหมายความว่า MySQL มีข้อผิดพลาดเมื่อใดก็ตามที่มีการป้อนข้อมูลของผู้ใช้ที่ผู้ใช้คัดลอกและวางอักขระ UTF-8 เจ้านายของฉันเรียกว่า "ตัวละครที่ไม่ดี" เหล่านี้เนื่องจากส่วนใหญ่เป็นตัวละครที่ไม่สามารถพิมพ์ได้และบอกว่าเราต้องถอดมันออก ฉันได้พบวิธีในการทำเช่นนี้ แต่ในที่สุดเราก็ลงเอยด้วยสถานการณ์ที่จำเป็นต้องใช้อักขระ UTF-8 นอกจากนี้ยังเป็นเรื่องยุ่งยากโดยเฉพาะอย่างยิ่งเนื่องจากดูเหมือนว่าทางออกเดียวที่ฉันเคยอ่านเกี่ยวกับปัญหานี้คือการตั้งค่าฐานข้อมูลเป็น UTF-8 (เหมาะสมกับฉัน) อาร์กิวเมนต์เดียวที่ฉันได้ยินมาสำหรับการใช้ภาษาละติน -1 คือการอนุญาตให้ใช้ตัวอักษร UTF-8 ที่ไม่สามารถพิมพ์ได้สามารถทำให้การค้นหาข้อความ / ข้อความแบบเต็มใน MySQL นี่เป็นเรื่องจริงหรือ มีเหตุผลอื่นอีกหรือไม่ที่เราควรใช้ Latin-1 แทน UTF-8 ฉันเข้าใจว่ามันยอดเยี่ยมและแพร่หลายมากขึ้น

8
ควรยกเลิกการเข้ารหัสอักขระนอกเหนือจาก UTF-8 (และอาจจะ UTF-16 / UTF-32) หรือไม่
สัตว์เลี้ยงของฉันกำลังมองหาโครงการซอฟต์แวร์จำนวนมากที่มีภูเขาของรหัสสำหรับการสนับสนุนชุดอักขระ อย่าเข้าใจฉันผิดฉันทุกคนเข้ากันได้และฉันดีใจที่ผู้แก้ไขข้อความให้คุณเปิดและบันทึกไฟล์ในชุดอักขระหลายชุด สิ่งที่ทำให้ฉันรำคาญคือการแพร่กระจายของการเข้ารหัสอักขระที่ไม่ใช่สากลนั้นมีชื่อว่า "การสนับสนุน Unicode ที่เหมาะสม" แทนที่จะเป็น "ปัญหา" ตัวอย่างเช่นสมมติฉันเลือกใน PostgreSQL และสนับสนุนชุดอักขระ PostgreSQL เกี่ยวข้องกับการเข้ารหัสสองประเภท: การเข้ารหัสไคลเอ็นต์: ใช้ในการสื่อสารระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ การเข้ารหัสเซิร์ฟเวอร์: ใช้เพื่อจัดเก็บข้อความภายในฐานข้อมูล ฉันสามารถเข้าใจได้ว่าทำไมการสนับสนุนการเข้ารหัสลูกค้าจำนวนมากเป็นสิ่งที่ดี ช่วยให้ลูกค้าที่ไม่ทำงานใน UTF-8 สามารถสื่อสารกับ PostgreSQL โดยไม่จำเป็นต้องทำการแปลง สิ่งที่ฉันไม่ได้รับคือ: ทำไม PostgreSQL จึงรองรับการเข้ารหัสเซิร์ฟเวอร์หลายเครื่อง ไฟล์ฐานข้อมูล (เกือบทุกครั้ง) ไม่สามารถใช้งานร่วมกันได้จากรุ่น PostgreSQL หนึ่งไปยังรุ่นถัดไปดังนั้นความเข้ากันได้ข้ามรุ่นจึงไม่ใช่ปัญหาที่นี่ UTF-8 เป็นชุดอักขระมาตรฐานที่เข้ากันได้กับ ASCII เท่านั้นที่สามารถเข้ารหัสรหัสสถานี Unicode ทั้งหมด (ถ้าฉันผิดให้ฉันรู้) ฉันอยู่ในค่ายที่ UTF-8 เป็นชุดตัวละครที่ดีที่สุดแต่ฉันก็ยินดีที่จะใส่ชุดอักขระสากลอื่น ๆ เช่น UTF-16 และ UTF-32 ฉันเชื่อว่าชุดอักขระที่ไม่ใช่สากลควรเลิกใช้แล้ว มีเหตุผลที่น่าสนใจที่พวกเขาไม่ควร?

4
ทำไม UTF-8 ถึงเสียหลายบิตในการเข้ารหัส
ตามบทความ Wikipedia , UTF-8 มีรูปแบบนี้: รหัสแรกรหัสล่าสุดไบต์ไบต์ 1 ไบต์ 2 ไบต์ 3 ไบต์ 4 จุดจุดที่ใช้ U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 07FF 2 110xxxxx 10xxxxxx U + 0800 U + FFFF 3 1110xxxx 10xxxxxx 10xxxxxx U + 10000 U + 1FFFFF 4 11110xxx 10xxxxxx …

2
UTF-16 เป็นความกว้างคงที่หรือความกว้างผันแปรหรือไม่? ทำไม UTF-8 ถึงไม่มีปัญหาการสั่งซื้อแบบไบต์
UTF-16 เป็นความกว้างคงที่หรือความกว้างผันแปรหรือไม่? ฉันได้รับผลลัพธ์ที่แตกต่างจากแหล่งข้อมูลอื่น: จากhttp://www.tbray.org/ongoing/When/200x/2003/04/26/UTF : UTF-16 เก็บอักขระ Unicode ในช่องสิบหกบิต จากhttp://en.wikipedia.org/wiki/UTF-16/UCS-2 : UTF-16 (รูปแบบการแปลง Unicode แบบ 16 บิต) เป็นการเข้ารหัสอักขระสำหรับ Unicode ที่สามารถเข้ารหัสได้ 1,112,064 หมายเลข [1] (เรียกว่าจุดโค้ด) ในพื้นที่โค้ด Unicode ตั้งแต่ 0 ถึง 0x10FFFF มันสร้างผลลัพธ์ความยาวผันแปรของหน่วยรหัส 16 บิตหนึ่งหรือสองหน่วยต่อจุดรหัส จากแหล่งแรก UTF-8 ยังมีข้อได้เปรียบที่หน่วยการเข้ารหัสเป็นไบต์ดังนั้นจึงไม่มีปัญหาการเรียงลำดับไบต์ ทำไม UTF-8 ถึงไม่มีปัญหาการสั่งซื้อแบบไบต์ มันเป็นความกว้างผันแปรและตัวละครหนึ่งตัวอาจมีมากกว่าหนึ่งไบต์ดังนั้นฉันคิดว่าคำสั่งแบบไบต์อาจเป็นปัญหาได้หรือไม่ ขอบคุณและขอแสดงความนับถือ!

3
รหัสแหล่งที่มาของฉันควรอยู่ใน UTF-8 หรือไม่
ฉันรู้สึกว่าบ่อยครั้งที่คุณไม่ได้เลือกรูปแบบของรหัสของคุณฉันหมายถึงเครื่องมือส่วนใหญ่ในอดีตตัดสินใจให้ฉัน หรือฉันไม่เคยแม้แต่จะคิดเกี่ยวกับมัน ฉันใช้ TextPad บน windows เมื่อวันก่อนและเมื่อฉันบันทึกไฟล์มันจะแจ้งให้ฉันทราบเกี่ยวกับ ASCII, UTF-8/16, Unicode และอื่น ๆ ... ฉันสมมติว่าเกือบทุกรหัสที่เขียนเป็น ASCII แต่ทำไมมันควรเป็น ASCII เราควรจะใช้ไฟล์ UTF-8 ตอนนี้สำหรับซอร์สโค้ดหรือไม่และทำไม? ฉันคิดว่านี่อาจเป็นประโยชน์กับทีมหลายภาษา มีมาตรฐานที่เกี่ยวข้องกับการตั้งชื่อตัวแปรฟังก์ชั่น / ฟังก์ชั่น ฯลฯ อย่างไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.