คุณพิมพ์อักขระ Unicode โดยใช้รหัสเลขฐานสิบหกได้อย่างไร


77

นี่เป็นใน Windows แต่คำตอบสำหรับระบบปฏิบัติการอื่นอาจเป็นประโยชน์กับผู้อื่น

ไกด์ส่วนใหญ่พูดอะไรบางอย่างกับเอฟเฟ็กต์ของ "กดปุ่ม Alt ค้างไว้แล้วพิมพ์รหัสลงบนปุ่มกด" วิธีนี้ใช้งานได้ดีสำหรับรหัสทศนิยม (เช่น 65 สำหรับ 'A') แต่ไม่ใช่สำหรับรหัสเลขฐานสิบหก (เช่นU + 0041สำหรับ 'A')

แอ็พพลิเคชันบางตัวมีสิ่งอำนวยความสะดวกอื่น ๆ ที่จะอนุญาตให้พิมพ์รหัสอักขระ Unicode เลขฐานสิบหกแล้วเปลี่ยนรูป Word อนุญาตให้คุณพิมพ์รหัส (เช่น 200f) แล้วแปลงเป็น Unicode โดยพิมพ์ Alt-X

ฉันกำลังมองหาวิธีการทั่วไปในการทำสิ่งนี้ซึ่งจะทำงานกับอินพุตมาตรฐาน


1
นี้ทำงานได้ดีสำหรับตัวอักษร Unicode ที่ไม่รวมฐานสิบหกตัวอักษร A ถึงเอฟควรอ่าน: รหัสทศนิยม มีตัวเลขฐานสิบหกมากมายที่ไม่ได้ใช้ AF เช่น 10 ซึ่งไม่ได้เป็นสิบแล้ว ...
Arjan

1
นั่นไร้ประโยชน์กับฉันเมื่อฉันต้องการพิมพ์ u + 23AF
Will

4
จุดของฉันคือ: คุณไม่สามารถพิมพ์สิ่งต่าง ๆ เช่น u + 0041 (hex 41, ทศนิยม 65) โดยใช้แป้นตัวเลขอย่างใดอย่างหนึ่ง (เนื่องจากต้องพิมพ์ 65 แทน 41) - fileformat.info/info/unicode/char/0041ดังนั้นการใช้ Alt-เคล็ดลับทำงานที่ดีสำหรับรหัสทศนิยม แต่ไม่ใช่สำหรับรหัสฐานสิบหก
Arjan

1
@Will: เมธอด "alt + NN ... " คาดหวังว่าจะได้ทศนิยมไม่ใช่รูปแบบเลขฐานสิบหกของตำแหน่งอักขระ Unicode ใช้เลขฐานสิบหก ดังนั้นหากคุณต้องการพิมพ์ว่า Unicode หมายถึงอะไร "U + 23AF" คุณต้องแปลง hex == 23AF เป็นทศนิยม == 9135 แล้วพิมพ์ "alt + 9135" นั่นเป็นวิธีการทั่วไปเท่านั้นที่มีให้ แต่:คุณต้องการตัวละครอาจยังไม่ปรากฏตามที่คาดหวังในฟิลด์ข้อความหรือเอกสารหากแบบอักษรที่คุณเลือกในปัจจุบันไม่มีตำแหน่ง "U + 23AF" เต็ม (หรือหากไม่ใช่แบบอักษร Unicode ในตอนแรก!)
Kurt Pfeifle

@Arjan: คุณไม่พิมพ์hex chars ด้วยวิธี "alt + nnn" คุณพิมพ์รหัสอักขระทศนิยมเท่านั้น นั่นเป็นเหตุผลที่คุณไม่สามารถพิมพ์สตริง "U + 1234" ที่ตรง (ซึ่งไม่มีอักขระ "af" ใด ๆ ที่คุณเกลียด) ลงในแป้นพิมพ์ตัวเลขของคุณเป็น "alt + 1234" แต่คุณต้องแปลง hex == 1234 เป็น dec = = 4660 แล้วพิมพ์ "alt + 4660" ก่อนคุณ ( MAY ) รับสิ่งที่คุณต้องการ ดังนั้นคำสั่งของคุณ "ใช้ Alt-trick ไม่ทำงานสำหรับรหัสเลขฐานสิบหก" ตอกย้ำปัญหาที่แน่นอน แต่คุณพลาดที่จะเข้าใจมันด้วยตัวคุณเอง :-)
Kurt Pfeifle

คำตอบ:


23

คำตอบของ harrymc นั้นดีทำให้คุณสามารถ / อนุญาตให้เปลี่ยนการตั้งค่ารีจิสทรีได้

หากไม่มีคุณสามารถใช้อุปกรณ์เสริม Windows Calculator เพื่อแปลงจากเลขฐานสิบหกเป็นทศนิยม โหมดเริ่มต้นจะไม่ทำเช่นนี้: XP และ Vista มีโหมด "วิทยาศาสตร์" ในขณะที่ Windows 7, 8, 8.1 และ 10 มีโหมด "โปรแกรมเมอร์"

เลือกHex base แล้วพิมพ์เลขฐานสิบหกของคุณ จากนั้นเปลี่ยนเป็นฐานDecเพื่อดูค่าเทียบเท่าเป็นทศนิยม นั่นคือหมายเลขที่คุณต้องพิมพ์ลงในแป้นตัวเลขในขณะที่กดปุ่มAltค้างไว้

สิ่งนี้อาจขึ้นอยู่กับภาษาที่ป้อนและคุณอาจต้องนำหน้าศูนย์เป็นค่าทศนิยม


คุณสามารถคำนวณด้วยset /aในหน้าต่างคำสั่ง ;-) ในการแปลงฐานสิบหก = 4321 เป็นทศนิยมให้พิมพ์set /a 4*16*16*16+3*16*16+2*16+1และผลลัพธ์จะปรากฏเป็น 17185
Kurt Pfeifle

3
อีกวิธีหนึ่งคือset /a 0x4321จะแสดง 17185
Marcks โทมัส

6
คำตอบนั้นทำให้เข้าใจผิดเพราะมันไม่ได้พูดถึงว่าจำเป็นต้องมีศูนย์นำหน้าเมื่อใช้ตัวเลขทศนิยมนอกช่วง Ascii (> 127) ถ้าคุณต้องการพิมพ์ U + 23AF แล้วแปลง 23AF เป็นทศนิยม 9135 แล้วลองใช้ Alt 9135 คุณจะได้รับ“ »” (U + 00BB) คุณต้องพิมพ์ Alt 09135 (โดยใช้ numpad) เพื่อรับตัวอักษรที่ถูกต้อง
Jukka K. Korpela

8
วิธีการใช้ตัวเลขทศนิยมนั้นขึ้นอยู่กับ“ ภาษาที่ใช้ป้อนข้อมูล” (ตามแนวคิดของ Microsoft) ดังนั้นผลลัพธ์จะแตกต่างกันไปตามระบบและโปรแกรม ตัวอย่างเช่นในโปรแกรม Windows ส่วนใหญ่เมื่อภาษาของระบบได้รับการตั้งค่าเป็นภาษาอังกฤษหรือภาษาตะวันตกอื่น ๆ สามารถพิมพ์อักขระ Windows Latin 1 ได้ด้วยวิธีนี้ Alt 0n ใด ๆ สำหรับ n> 255 จะทำงาน“ modulo 256”, โดยที่ n ลดเหลือ 0 0 255 โดยหารด้วย 256 และนำส่วนที่เหลือ
Jukka K. Korpela

2
คำตอบนี้ผิด Alt + 0nnn (0-255) ป้อนอักขระจากเพจรหัส ANSI ของระบบ (เช่น 1252) ค่าที่ป้อนคือ modulo 256 ดังกล่าวข้างต้น Alt + nnn (0-255) โดยไม่มีศูนย์นำหน้าป้อนอักขระจากโค้ดเพจ OEM ของระบบ (เช่น 437 หรือ 850) อย่างไรก็ตามรหัส 31 รหัสแรกไม่ใช่อักขระควบคุม ASCII ปกติ แต่เป็นสัญลักษณ์แทนภาพที่แสดงสำหรับอักขระเหล่านี้ในพีซียุค 80 ที่ใช้งาน DOS ในการ Windows API หลังสอดคล้องกับการใช้MB_USEGLYPHCHARSธงเมื่อถอดรหัสไบต์ Unicode MultiByteToWideCharผ่าน
Eryk Sun

39

พบสิ่งนี้ในวิธีการใส่อักขระ Unicode ใน Microsoft Windows :

ฉันทดสอบสิ่งนี้ใน Windows XP และ Windows 2003 วิธีนี้ใช้ได้ผลโดยไม่คำนึงถึงการตั้งค่าภาษาใด ๆ ของคุณ แต่เป็นวิธีที่ยุ่งยากที่สุดในการพิมพ์:

  1. กดปุ่ม Alt ค้างไว้
  2. กดปุ่ม + (บวก) บนแป้นพิมพ์ตัวเลข
  3. พิมพ์ค่า unicode เลขฐานสิบหก
  4. ปล่อยปุ่ม Alt

อนิจจาสิ่งนี้ดูเหมือนจะต้องมีการตั้งค่ารีจิสทรี มีการตั้งค่าไว้ในคอมพิวเตอร์ของฉันแล้ว แต่ผู้อ่านบางคนรายงานว่าวิธีนี้ใช้ไม่ได้กับพวกเขาและนี่อาจเป็นสาเหตุ หากคุณไม่ทราบว่ารีจิสทรีคืออะไรโปรดอย่าลองสิ่งนี้ ภายใต้ HKEY_CURRENT_USER\Control Panel\Input Methodตั้งค่า EnableHexNumpad เป็น "1" หากคุณต้องการเพิ่มตั้งประเภทเป็น REG_SZ

คุณควรออกจากระบบจากนั้นเข้าสู่ระบบหลังจากการเปลี่ยนแปลงรีจิสทรีนี้หรือแม้กระทั่งรีบูต


1
ถ้าฉันไม่รู้ว่ารีจิสทรีคืออะไรฉันก็ไม่รู้ว่าจะลองอย่างไร
Vanuan

5
หากคุณไม่ทราบว่ารีจิสทรีคืออะไรคุณไม่ควรแตะต้องมันเลย ถามคนที่คุณรู้จักเพื่อขอความช่วยเหลือ
Wug

+1 แต่มีสองสิ่ง: (i) ทั้งใน Firefox และ IE หากรหัสฐานสิบหกที่คุณพยายามพิมพ์ประกอบด้วย leeter ที่สอดคล้องกับทางลัด Alt + [ตัวอักษร] สำหรับเมนูเมนูจะเลื่อนลงและคุณจะไม่ รับตัวละครของคุณ (ตัวแบ่ง E&F ทั้ง A, IE และ B บน Firefox, notepad ทำงานได้ดีเช่นเดียวกับกล่อง winkey + R "run"); (ii) REG_SZ อาจปรากฏขึ้นในเมนูคลิกขวาใหม่เป็น "Registry String"
Chris H

สิ่งนี้ควรจะใช้ได้กับทุกแอปพลิเคชันหรือไม่ ฉันได้ไปทำงานใน notepad, notepad ++, Firefox และแม้แต่ Excel แต่ไม่ใช่ใน Word, Outlook, PowerPoint หรือ Lync นี่คือ W7
Didier L

3
สวัสดี harrymc ฉันจะพิมพ์ตัวอักษรที่มีอยู่ใน hex ได้อย่างไร ตัวอย่าง: "👉" = 👉 - หลังจากที่ฉันกดปุ่มFคำสั่งเมนู alt จะถูกเรียกใช้งานบนหน้าต่าง มันไม่ได้บินไปกับการแปลงเป็นทศนิยม (128073) ไม่ได้เพิ่มศูนย์นำหน้า
Matas Vaitkevicius

17

บน Mac OS X: เปิด International ใน System Preferences และใน Input Menu เลือก "Unicode Hex Input" เพื่อเพิ่มตัวเลือกนี้ในเมนูอินพุต ฟังดูชัดเจน แต่นี่ซ่อนอยู่ในรายการภาษาที่ยาวระหว่างภาษายูเครนและภาษาเวียดนาม เมื่อเลือกให้กดตัวเลือกค้างไว้แล้วพิมพ์รหัสฐานสิบหก 4 หลัก

นอกจากนี้ใน OS X: เครื่องคิดเลขสามารถตั้งค่าเป็นโหมดโปรแกรมเมอร์ (Cmd-3) ซึ่งอนุญาตให้ป้อนรหัสทศนิยมฐานแปดและฐานสิบหกซึ่งจะแสดงเป็น ASCII หรือ Unicode อย่างไรก็ตามการคัดลอกจะให้รหัสหนึ่งรหัสไม่ใช่อักขระที่เทียบเท่ากัน ใคร?

(สำหรับ Windows ดูวิธีใส่อักขระ Unicode ใน Microsoft Windowsสำหรับวิธีการป้อนข้อมูลอื่น ๆ ดูWikipedia )

และที่นี่ใน Super User:

และไปสู่สุดขั้ว:


9

ใน Ubuntu (และตัวแปรต่างๆเช่น LinuxMint) คุณสามารถป้อนค่า Unicode ได้โดยกดCtrl+ Shift+ uตามด้วยค่า Unicode และ Enter ตัวอย่างเช่น:

Ctrl+ Shift+ u 263aจากนั้นป้อนอัตราผลตอบแทน:

ข้อความ: ☺
สกรีนช็อต:ข้อความแสดงแทน

คุณอาจจับคู่สิ่งนี้กับ AutoHotkey เพื่อการป้อนข้อมูลที่ง่ายขึ้นหรือการป้อนข้อมูลที่เป็นไปได้ใน Windows


2
น่าเสียดายที่ใช้งานได้กับแอปพลิเคชัน GTK + เท่านั้น
หอยทากเชิงกล

2
นอกจากนี้คุณยังสามารถกด Ctrl-Shift ค้างไว้ในขณะที่พิมพ์รหัสเพื่อหลีกเลี่ยงการกด Enter หลังจากนั้น
หอยทากเชิงกล

1
ฉันได้พบวิธีแก้ปัญหาที่ดีกว่า: คุณสามารถเพิ่มเครื่องหมายเน้นเสียงให้กับอักขระก่อนหน้าโดยใช้ Unicode ที่รวมเครื่องหมายกำกับเสียง Unicode 0301 - 0308 มีประโยชน์สำหรับพินอิน ตัวอย่างเช่น: "a" + [ctrl] [shift] [u] + 0301 [return] -> á รายการพินอิน: ó -> 0301; ò -> 0300; ō -> 0304; ŏ -> 0306; ö -> 0308; ดูen.wikipedia.org/wiki/Combining_character#Unicode_ranges
emf

6

ฉันได้เขียนเครื่องมือ Unicode Input ที่ใช้ AutoHotkey ขนาดเล็กเพราะฉันไม่พบวิธีแก้ปัญหาที่ดีกว่า คุณสามารถแทรกตัวอักษร Unicode กับShift+ +CtrlU

กล่องโต้ตอบ Unicode

โดยทั่วไปจะแปลงรายการเป็นอักขระ Unicode และ "พิมพ์" ที่ตำแหน่งเคอร์เซอร์

ไม่รองรับอักขระยูนิโค้ด 6 หลัก นอกจากนี้หากคุณมีช่องป้อนข้อความที่เลือกข้อความทั้งหมดเมื่อโฟกัสหายไปข้อความทั้งหมดจะถูกเขียนทับ (ฉันคิดว่าฉันจำ Firefox เวอร์ชันเก่าที่แสดงพฤติกรรมนี้)

เป็นข้อมูลอ้างอิงที่นี่เป็นแหล่งข้อมูลAutoHotkeyหากคุณต้องการรวบรวมด้วยตัวเอง:

#SingleInstance force
#Persistent
;Menu, Tray, icon, unicode.ico
Menu, Tray, nostandard ; Put the following menu items on top (default: bottom)
Menu, Tray, add, Info, InfoHandler, -10
Menu, Tray, add
Menu, Tray, standard ; Add default menu items at the bottom
return

InfoHandler:
MsgBox Press Shift+Ctrl+U to get an entry field for unicode points (see decodeunicode.org for a list).`n`nAuthor: Simon A. Eugster <simon.eu@gmail.com> / granjow.net
return

+^u::
InputBox, codepoint, Unicode code point, U+
if not ErrorLevel
    Send {U+%codepoint%}
return

2

นอกจากนี้ยังขึ้นอยู่กับตำแหน่งที่คุณต้องการใช้อักขระพิเศษ ด้วยแอป MS Office คุณไม่จำเป็นต้องรู้รหัส ASCII สำหรับตัวอักษรบางตัว - ตัวอย่างเช่นในการพิมพ์ diaresis (เช่นจุดสองจุดที่คุณเห็นอยู่เหนืออักขระบางตัวในคำเช่นnaïve) ใน Word / Outlook / etc คุณสามารถกด Ctrl + ':' (เช่น Ctrl + Shift +;) ตามด้วย 'i'

มีรายการทางลัดที่มีให้ที่http://word.mvps.org/FAQs/General/InsertSpecChars.htm ... เพียงเลื่อนลงไปที่ "International Characters"

ฉันไม่ทราบว่าแอพที่ไม่ใช่ Office รองรับทางลัดที่คล้ายกันหรือไม่


2

Linux (รวมถึงแอปพลิเคชัน Qt / KDE)

ดังที่ JMD พูดถึงคุณสามารถกดCtrl- Shiftพิมพ์u1f4a9และปล่อยเพื่อพิมพ์ U + 1F4A9 ในแอปพลิเคชัน GTK + (รวมถึงโปรแกรม GNOME, Firefox, Chromium และ LibreOffice แม้จะอยู่ใน KDE) บางโปรแกรมยังสนับสนุนการพิมพ์ในลำดับ-Ctrl - , , , , , ,ShiftU1f4a9Enter

น่าเสียดายที่สิ่งนี้ไม่ทำงานในแอปพลิเคชัน Qt (รวมถึงโปรแกรม KDE, Mathematica และ VLC) สำหรับอักขระ BMP มีวิธีป้อนข้อมูล Unicode IBus หากต้องการเปิดใช้งานให้เปิดการกำหนดค่าตามความชอบ IBus และเพิ่มวิธีการอินพุต "Other - unicode (m17n)" ( ต้องติดตั้งสองแพ็กเกจibus-m17nและibus-qt4 ) เมื่อเคอร์เซอร์อยู่ในพื้นที่ข้อความให้เปิดใช้งานวิธีป้อนข้อมูล (ใช้แถบเครื่องมือ IBus หรือแป้นพิมพ์ลัด) ขณะที่ใช้งานอยู่วิธีการป้อนข้อมูลให้คุณพิมพ์Ctrl- Shift- Uตามด้วยเลขฐานสิบหก 4 หลักเพื่อป้อนอักขระ Unicode ที่เกี่ยวข้อง แม้ว่าจะใช้ได้กับอักขระ BMP เท่านั้น

(ทดสอบภายใต้ Ubuntu)


ใช้งานไม่ได้กับ KDE สำหรับฉัน ..
แจ็ค

ฉันจะหาการตั้งค่า IBus ได้ที่ไหน
Anarcat

1

อาจไม่ใช่สิ่งที่คุณขออย่างแน่นอน แต่เป็นสิ่งที่ฉันกำลังมองหา ใน Windows 10 คุณสามารถกดWin+ .หรือWin+ ;เพื่อเปิดเบราว์เซอร์อิโมจิ:

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

อย่างที่คุณเห็นในภาพด้านบนคุณสามารถค้นหาโดยพิมพ์เพียงแค่

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