ฉันจะแก้ไขข้อความ Unicode ใน Notepad ++ ได้อย่างไร


26

บางครั้งฉันแก้ไขข้อความภาษาอังกฤษที่มีอักขระ Unicode ด้วยเหตุผลบางอย่างบนพีซีของฉัน Notepad ++ จะแปลงอักขระ Unicodeให้เป็นข้อความที่เสียหายและสูญเสียข้อมูลทั้งหมด ฉันกำลังมองหาวิธีการแก้ไขข้อความดังกล่าวในขณะที่รักษาอักขระ Unicode ฉันใช้Consolasเป็นฟอนต์ของฉัน หากแบบอักษรไม่มีตัวอักษรเหล่านั้นทั้งหมดทำไมฉันถึงต้องสูญเสียข้อมูลเมื่อฉันคัดลอกข้อความออกจาก Notepad ++ (ผ่านคลิปบอร์ดของ Windows)


เป็นไปได้ไหมว่าคุณใช้ปลั๊กอินที่ไม่รองรับ Unicode
Ivo Flipse

หากสิ่งเหล่านั้นเป็นเครื่องหมายคำถามในกล่องจริงๆแล้วมันเป็นสัญลักษณ์ของฟอนต์สำหรับร่ายมนตร์ที่หายไปและข้อมูลของคุณจะไม่สูญหาย
Joey

ไม่มีมันไม่ได้อยู่ในกล่องแทนธรรมดา '?' ตัวละคร ได้รับการยืนยัน
Robinicks

1
คุณอาจต้องเปลี่ยนแบบอักษร ดูsuperuser.com/questions/16831/…
RamyenHead

คำตอบ:


15

หากไฟล์นั้นเข้ารหัสใน Unicode จริง Notepad ++ ควรตรวจจับมันโดยอัตโนมัติ อักษร Consolasทำงานได้ดีสำหรับฉัน คุณสามารถลองหนึ่งในสองตัวเลือกเมนูต่อไปนี้:

  • การเข้ารหัส -> เข้ารหัสใน UTF-8
  • การเข้ารหัส -> แปลงเป็น UTF-8

ฉันค่อนข้างแน่ใจว่าคนแรกจะทำในสิ่งที่คุณต้องการ


ฉันไม่มีเมนูรูปแบบ
Val

1
สำหรับลูกหลานคุณต้องใช้เมนูการเข้ารหัสไม่ใช่รูปแบบ
Ken Bellows

15

ปัญหาที่อธิบายในคำถามนี้เกิดขึ้นเมื่อเอกสารเปล่า / ใหม่ถูกตั้งค่าเป็น "ANSI" และอักขระ Unicodeจะถูกวางลงไป

ไม่มีการตรวจจับอัตโนมัติเมื่อใช้กับเอกสารว่าง / ใหม่อย่างน้อยไม่ได้อยู่ในรุ่น Notepad ++ ที่ฉันทดสอบใน (v5.4.5) "ANSI" เป็นค่าเริ่มต้นใน Notepad ++ สำหรับเอกสารใหม่เว้นแต่ชุดในเมนูการตั้งค่าการตั้งค่า →แท็บเอกสารใหม่ / เปิดบันทึกสารบบ

วิธีการแก้

วิธีแก้ไขคือตั้งค่าการเข้ารหัสเป็นUTF-8ก่อนวางรูปแบบเมนู→ เข้ารหัสใน UTF-8 :

คำสั่งเมนู "เมนูรูปแบบ / เข้ารหัสใน UTF-8" กำลังจะถูกเรียกใช้

ตัวอย่าง

ผมคัดลอกข้อความบางส่วนไปยัง Notepad ++ ใหม่เอกสารรัสเซีย (русскийязык, yazyk Russkiy) , จาก Firefox แสดงหน้าวิกิพีเดียภาษารัสเซีย

หากการเข้ารหัสไม่ได้เปลี่ยนจาก "ANSI" นี่คือผลลัพธ์:

ผลลัพธ์ของการวางสตริง Unicode "Russian (русскийязык, russkiy yazyk") ลงในเอกสาร Notepad ++ ใหม่โดยไม่เปลี่ยนการเข้ารหัสจากค่าเริ่มต้น "ANSI"

หากการเข้ารหัสมีการเปลี่ยนแปลงนี่คือผลลัพธ์:

ผลลัพธ์ของการวางสตริง Unicode "Russian (русскийязык, russkiy yazyk") ในเอกสาร Notepad ++ ใหม่หลังจากเปลี่ยนการเข้ารหัสจากค่าเริ่มต้น "ANSI" เป็น "UTF-8"

ดังที่เห็นได้จากรูปด้านล่าง ( ส่วนที่เน้นCyrillic ) Notepad ++ จะแปลงอักขระ Unicode เป็น ASCII 63 (เลขฐานสิบหก 3F) จริง ๆ นั่นคือสาเหตุที่อักขระ Unicode สูญหาย (ในโหมด"ANSI" ) เมื่อคัดลอกข้อความผ่านคลิปบอร์ด ( ไม่ใช่ปัญหาแบบอักษร - ข้อมูลสูญหาย)

สกรีนช็อตของมุมมองเลขฐานสิบหกของเอกสารดังกล่าว

ทดสอบกับ: Notepad ++ v5.4.5 (UNICODE)


5

มีข่าวดีและข่าวร้าย

ข่าวดี: Notepad ++ รองรับ Unicode (อย่างน้อยจากสิ่งที่ฉันสามารถรวบรวมได้)

ข่าวร้าย:การสนับสนุน Unicode เห็นได้ชัดว่ามีเฉพาะใน Windows XP

ที่จริงฉันไม่มีเครื่อง Windows อยู่ข้างหน้าฉัน จากสิ่งที่ฉันจำได้มีเมนูการเข้ารหัสใต้เมนูรูปแบบบางแห่ง การเข้ารหัสสำหรับ Unicode โดยทั่วไปแล้วมักเป็น UTF-8

นี่คือรูปภาพสวย ๆ ของการสนับสนุน Unicode ใน Notepad ++

ป้อนคำอธิบายรูปภาพที่นี่


3

Unicode ทำงานได้อย่างสมบูรณ์บน Windows 7 ปัญหาเดียวที่เกิดขึ้นคือคุณต้องพิมพ์อักขระที่มีการเปลี่ยนแปลงอีกครั้ง มันเกิดขึ้นกับฉัน ฉันกำลังเขียนด้วยตัวอักษรสแกนดิเนเวียดังนั้นä -> E4, ö -> F6 มันเป็นความเจ็บปวดในก้นเพื่อแทนที่พวกเขาทั้งหมด แต่มันก็คุ้มค่า

หากคุณเข้ารหัสหน้าจาก ANSI -> UTF-8 จะมีปัญหาเกี่ยวกับตัวอักษร

ฉันขอแนะนำให้คุณสร้างหน้าใหม่ใน UTF-8 ก่อนจากนั้นคัดลอก / วางข้อมูลของคุณ จะไม่มี / ไม่ควรมีปัญหาใด ๆ


1

นี่ใช้ได้สำหรับฉัน:

ฉันเปลี่ยนแบบอักษรเป็นCourier Newในเครื่องมือปรับแต่งรูปแบบบนพีซีของฉัน (Windows 7 ด้วยชุดอักขระภาษาอังกฤษ / สหรัฐอเมริกาและโรมาเนียสำหรับชุดที่ไม่ใช่ Unicode) มันทำงานกับแบบอักษร Courier New & Tahoma + การเข้ารหัส UTF-8 ได้


0

ที่เมนูด้านบนให้เลือกEncodingจากนั้นเลือกEncode in UTF-8หรือEncode in UTF-8 Without BOMคุณสามารถแก้ไขข้อความในการเข้ารหัส Unicode

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