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

การเข้ารหัสอักขระหมายถึงวิธีแสดงอักขระเป็นชุดของไบต์ การเข้ารหัสอักขระสำหรับเว็บถูกกำหนดในมาตรฐานการเข้ารหัส

10
UTF-8 สามารถเข้ารหัสอักขระได้กี่ตัว?
ถ้า UTF-8 เป็น 8 บิตไม่ได้หมายความว่าจะมีอักขระที่แตกต่างกันได้สูงสุด 256 ตัวหรือไม่? จุดรหัส 128 รายการแรกเหมือนกับใน ASCII แต่มันบอกว่า UTF-8 สามารถรองรับได้ถึงล้านตัวอักษร? วิธีนี้ทำงานอย่างไร?

6
รหัส ASCII เป็น 7 บิตหรือ 8 บิต?
ครูของฉันบอกว่า ASCII เป็นรูปแบบการเข้ารหัสอักขระ 8 บิต แต่กำหนดไว้สำหรับรหัส 0-127 เท่านั้นซึ่งหมายความว่าสามารถใส่เป็น 7 บิตได้ ดังนั้นจึงไม่สามารถโต้แย้งได้ว่า ASCII bit เป็นรหัส 7 บิตจริงหรือ? และเราหมายถึงอะไรเมื่อพูดว่า ASCII เป็นรหัส 8 บิตเลย?

4
วิธีตั้งค่าการเข้ารหัสมาตรฐานใน Visual Studio
ฉันกำลังค้นหาวิธีตั้งค่า Visual Studio เพื่อให้มันบันทึกไฟล์ของฉันใน UTF-8 เสมอ ฉันพบเพียงตัวเลือกในการกำหนดโครงการนี้ให้กว้าง มีวิธีตั้งค่า Visual Studio ให้กว้างหรือไม่?

8
วิธีคาดเดาการเข้ารหัสระหว่าง MacRoman, CP1252, Latin1, UTF-8 และ ASCII ได้อย่างน่าเชื่อถือ
ในที่ทำงานดูเหมือนว่าจะไม่มีสัปดาห์ใดผ่านไปโดยไม่มีการเชื่อมต่อที่เกี่ยวข้องกับการเข้ารหัสภัยพิบัติหรือหายนะ ปัญหามักเกิดจากโปรแกรมเมอร์ที่คิดว่าสามารถประมวลผลไฟล์ "ข้อความ" ได้อย่างน่าเชื่อถือโดยไม่ต้องระบุการเข้ารหัส แต่คุณทำไม่ได้ ดังนั้นจึงมีการตัดสินใจที่จะห้ามไม่ให้ไฟล์มีชื่อที่ลงท้ายด้วย*.txtหรือ*.text. แนวคิดก็คือส่วนขยายเหล่านั้นทำให้โปรแกรมเมอร์ทั่วไปเข้าใจผิดว่าเป็นความพึงพอใจที่น่าเบื่อเกี่ยวกับการเข้ารหัสและสิ่งนี้นำไปสู่การจัดการที่ไม่เหมาะสม เกือบจะดีกว่าที่จะไม่มีส่วนขยายเลยเพราะอย่างน้อยคุณก็รู้ว่าคุณไม่รู้ว่าคุณมีอะไรบ้าง อย่างไรก็ตามเราจะไม่ไปไกลขนาดนั้น คุณจะต้องใช้ชื่อไฟล์ที่ลงท้ายด้วยการเข้ารหัสแทน ดังนั้นสำหรับไฟล์ข้อความเช่นเหล่านี้จะเป็นสิ่งที่ชอบREADME.ascii, README.latin1, README.utf8ฯลฯ สำหรับไฟล์ที่ต้องการนามสกุลเฉพาะหากสามารถระบุการเข้ารหัสภายในไฟล์ได้เช่นใน Perl หรือ Python คุณจะต้องทำเช่นนั้น สำหรับไฟล์เช่นซอร์ส Java ที่ไม่มีสิ่งอำนวยความสะดวกดังกล่าวอยู่ภายในไฟล์คุณจะต้องใส่การเข้ารหัสก่อนนามสกุลเช่นSomeClass-utf8.java. สำหรับเอาต์พุต UTF-8 เป็นที่ต้องการอย่างยิ่ง แต่สำหรับการป้อนข้อมูลที่เราจำเป็นต้องคิดหาวิธีที่จะจัดการกับพันไฟล์ใน codebase *.txtของเราชื่อ เราต้องการเปลี่ยนชื่อทั้งหมดให้เข้ากับมาตรฐานใหม่ของเรา แต่เราไม่สามารถมองเห็นพวกมันได้ทั้งหมด ดังนั้นเราจึงต้องการไลบรารีหรือโปรแกรมที่ใช้งานได้จริง สิ่งเหล่านี้มีหลากหลายใน ASCII, ISO-8859-1, UTF-8, Microsoft CP1252 หรือ Apple MacRoman แม้ว่าเราจะรู้ว่าเราสามารถบอกได้ว่ามีบางอย่างเป็น ASCII หรือไม่และเรามีการเปลี่ยนแปลงที่ดีในการรู้ว่าบางสิ่งอาจเป็น UTF-8 หรือไม่ แต่เราก็นิ่งงันเกี่ยวกับการเข้ารหัส 8 บิต เนื่องจากเราทำงานในสภาพแวดล้อม Unix แบบผสม …

3
JsonParseException: อักขระที่ไม่ได้ใส่เครื่องหมายที่ผิดกฎหมาย ((CTRL-CHAR รหัส 10)
ฉันกำลังพยายามใช้org.apache.httpcomponentsRest API ซึ่งจะโพสต์ข้อมูลรูปแบบ JSON ไปยัง API ฉันได้รับข้อยกเว้นนี้: เกิดจาก: com.fasterxml.jackson.core.JsonParseException: อักขระที่ไม่ได้ใส่เครื่องหมายที่ไม่ถูกต้อง ((CTRL-CHAR, รหัส 10)): ต้องมีการหลีกเลี่ยงโดยใช้แบ็กสแลชเพื่อรวมอยู่ในสตริง สาเหตุเป็นเพราะctrl-charรวมอยู่ในสตริง JSON มีวิธีใดบ้างที่จะแทนที่วิธีนี้หรือวิธีอื่น ๆ

3
คือ“ & # 160;” แทนที่“ & nbsp;”?
ในแอปพลิเคชัน ASP.NET ของฉันฉันพยายามเพิ่มช่องว่างสีขาวสองสามช่องระหว่างกล่องข้อความสองกล่องโดยพิมพ์ space bar ซอร์ส HTML ที่เทียบเท่าถูก แทนที่ ด้วย ฉันแค่อยากจะตรวจสอบว่านี่เป็นการแทนที่พื้นที่สีขาวใหม่หรือไม่? ถ้าใช่คิดว่าทำไมพวกเขาถึงเปลี่ยนไป?

10
Charset รวมทั้งหมดเพื่อหลีกเลี่ยง“ java.nio.charset.MalformedInputException: Input length = 1”?
ฉันกำลังสร้างโปรแกรม wordcount อย่างง่ายใน Java ที่อ่านไฟล์ตามข้อความของไดเร็กทอรี อย่างไรก็ตามฉันยังคงได้รับข้อผิดพลาด: java.nio.charset.MalformedInputException: Input length = 1 จากบรรทัดของรหัสนี้: BufferedReader reader = Files.newBufferedReader(file,Charset.forName("UTF-8")); ฉันรู้ว่าฉันอาจได้รับสิ่งนี้เนื่องจากฉันใช้Charsetตัวอักษรที่ไม่มีอักขระบางตัวในไฟล์ข้อความซึ่งบางตัวมีอักขระของภาษาอื่นด้วย แต่ฉันต้องการรวมตัวละครเหล่านั้น ฉันเรียนรู้ในภายหลังที่JavaDocsว่าCharsetเป็นทางเลือกและใช้เพื่อการอ่านไฟล์ที่มีประสิทธิภาพมากขึ้นเท่านั้นดังนั้นฉันจึงเปลี่ยนรหัสเป็น: BufferedReader reader = Files.newBufferedReader(file); แต่บางไฟล์ยังคงใช้ไฟล์MalformedInputException. ฉันไม่รู้ว่าทำไม ฉันสงสัยว่ามีการรวมทุกอย่างCharsetที่จะช่วยให้ฉันอ่านไฟล์ข้อความที่มีอักขระประเภทต่างๆได้หรือไม่? ขอบคุณ.

2
อักขระมีกี่บิตหรือไบต์ [ปิด]
มันยากที่จะบอกว่ากำลังถามอะไรที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือมีวาทศิลป์และไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน9 ปีที่ผ่านมา "อักขระ" มีกี่บิตหรือไบต์

9
การอ่านไฟล์ UTF8 CSV ด้วย Python
ฉันกำลังพยายามอ่านไฟล์ CSV ที่มีอักขระเน้นเสียงด้วย Python (เฉพาะอักษรฝรั่งเศสและ / หรือสเปน) จากเอกสาร Python 2.5 สำหรับ csvreader ( http://docs.python.org/library/csv.html ) ฉันคิดรหัสต่อไปนี้เพื่ออ่านไฟล์ CSV เนื่องจาก csvreader รองรับเฉพาะ ASCII def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs): # csv.py doesn't do Unicode; encode temporarily as UTF-8: csv_reader = csv.reader(utf_8_encoder(unicode_csv_data), dialect=dialect, **kwargs) for row in csv_reader: # decode UTF-8 back to Unicode, cell …

6
จะค้นหา Charset / Encoding เริ่มต้นใน Java ได้อย่างไร?
คำตอบที่ชัดเจนคือการใช้Charset.defaultCharset()แต่เมื่อเร็ว ๆ นี้เราพบว่านี่อาจไม่ใช่คำตอบที่ถูกต้อง ฉันได้รับแจ้งว่าผลลัพธ์แตกต่างจากชุดอักขระเริ่มต้นจริงที่ใช้โดยคลาส java.io ในหลาย ๆ ครั้ง ดูเหมือนว่า Java จะเก็บชุดอักขระเริ่มต้นไว้ 2 ชุด ใครมีข้อมูลเชิงลึกเกี่ยวกับปัญหานี้หรือไม่? เราสามารถทำซ้ำกรณีล้มเหลวหนึ่งกรณี เป็นข้อผิดพลาดของผู้ใช้ แต่ยังอาจเปิดเผยสาเหตุของปัญหาอื่น ๆ ทั้งหมด นี่คือรหัส public class CharSetTest { public static void main(String[] args) { System.out.println("Default Charset=" + Charset.defaultCharset()); System.setProperty("file.encoding", "Latin-1"); System.out.println("file.encoding=" + System.getProperty("file.encoding")); System.out.println("Default Charset=" + Charset.defaultCharset()); System.out.println("Default Charset in Use=" + getDefaultCharSet()); } …

6
ปัญหาการเข้ารหัสเอาต์พุตบันทึก git ในพรอมต์คำสั่งของ Windows 10
ปัญหา วิธีทำให้git logเอาต์พุตคำสั่งแสดงอย่างถูกต้องบนพรอมต์คำสั่งของ Windows ตัวอย่าง อย่างที่คุณเห็นฉันสามารถพิมพ์อักขระกำกับเสียงได้อย่างถูกต้อง แต่บนgit logเอาต์พุตจะมีการหลีกเลี่ยง ตามUTF-8ตารางการเข้ารหัสรหัสระหว่างวงเล็บเหลี่ยม ( <และ>) จากเอาต์พุตจะสอดคล้องกับgit configพารามิเตอร์ที่พิมพ์ไว้ก่อนหน้านี้ ฉันได้พยายามตั้งค่าLESSCHARSETตัวแปรสภาพแวดล้อมutf-8เป็นคำตอบสำหรับปัญหาที่คล้ายกันแต่ผลลัพธ์ก็อ่านไม่ออก: ฉันรู้ว่า.git/configเข้ารหัสอย่างถูกต้องutf-8ตามที่ได้รับการจัดการตามgitkที่คาดไว้ นี่คือlocaleเอาต์พุตคำสั่งหากจำเป็น LANG= LC_CTYPE="C.UTF-8" LC_NUMERIC="C.UTF-8" LC_TIME="C.UTF-8" LC_COLLATE="C.UTF-8" LC_MONETARY="C.UTF-8" LC_MESSAGES="C.UTF-8" LC_ALL= แก้ไข: ผลลัพธ์จะเหมือนกันในgit-bash : ดังนั้นฉันเชื่อว่าปัญหานั้นไม่ขึ้นกับเชลล์และเกี่ยวข้องกับ Git หรือการกำหนดค่าเอง

5
Python: การแปลงจาก ISO-8859-1 / latin1 เป็น UTF-8
ฉันมีสตริงนี้ที่ถอดรหัสจาก Quoted-printable เป็น ISO-8859-1 ด้วยโมดูลอีเมล สิ่งนี้ทำให้ฉันมีสตริงเช่น "\ xC4pple" ซึ่งจะตรงกับ "Äpple" (Apple ในภาษาสวีเดน) อย่างไรก็ตามฉันไม่สามารถแปลงสตริงเหล่านั้นเป็น UTF-8 ได้ >>> apple = "\xC4pple" >>> apple '\xc4pple' >>> apple.encode("UTF-8") Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128) ฉันควรทำอย่างไรดี?

13
บันทึกไฟล์ทั้งหมดในโครงการ Visual Studio เป็น UTF-8
ฉันสงสัยว่าเป็นไปได้ไหมที่จะบันทึกไฟล์ทั้งหมดในโครงการ Visual Studio 2008 ลงในการเข้ารหัสอักขระเฉพาะ ฉันได้รับโซลูชันที่มีการเข้ารหัสแบบผสมและฉันต้องการทำให้มันเหมือนกันทั้งหมด (UTF-8 พร้อมลายเซ็น) ฉันรู้วิธีบันทึกไฟล์เดียว แต่ไฟล์ทั้งหมดในโปรเจ็กต์ล่ะ


7
การแปลงไบต์อาร์เรย์เป็น String (Java)
ฉันกำลังเขียนเว็บแอปพลิเคชันใน Google App Engine ช่วยให้ผู้ใช้สามารถแก้ไขโค้ด html โดยทั่วไปที่เก็บเป็น.htmlไฟล์ใน blobstore ฉันใช้ fetchData เพื่อส่งคืนbyte[]อักขระทั้งหมดในไฟล์ ฉันพยายามพิมพ์เป็น html เพื่อให้ผู้ใช้แก้ไขโค้ด html ทุกอย่างใช้งานได้ดี! นี่คือปัญหาเดียวของฉันตอนนี้: อาร์เรย์ไบต์มีปัญหาบางอย่างเมื่อแปลงกลับเป็นสตริง คำพูดที่ชาญฉลาดและตัวละครสองตัวกำลังออกมาดูขี้ขลาด (? หรือสัญลักษณ์ภาษาญี่ปุ่นเป็นต้น) โดยเฉพาะอย่างยิ่งมีหลายไบต์ที่ฉันเห็นว่ามีค่าลบซึ่งเป็นสาเหตุของปัญหา ราคาสมาร์ทจะกลับมาเป็น-108และ-109ในอาร์เรย์ไบต์ เหตุใดจึงเป็นเช่นนี้และฉันจะถอดรหัสไบต์เชิงลบเพื่อแสดงการเข้ารหัสอักขระที่ถูกต้องได้อย่างไร

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