Bagaimana Anda mengetik karakter Unicode menggunakan kode heksadesimal?

77

Ini ada di Windows, tetapi jawaban untuk sistem operasi lain bisa berguna bagi orang lain.

Sebagian besar panduan mengatakan sesuatu dengan efek "tahan tombol Alt dan ketik kode pada keypad". Ini berfungsi baik untuk kode desimal (seperti 65 untuk 'A'), tetapi tidak untuk kode heksadesimal (seperti U + 0041 untuk 'A').

Beberapa aplikasi menyediakan fasilitas lain yang akan memungkinkan kode karakter Unicode heksadesimal untuk diketik dan kemudian diubah. Word memungkinkan Anda mengetik kode (seperti 200f) dan kemudian mengubahnya menjadi Unicode dengan mengetikkan Alt-X.

Saya mencari metode umum untuk melakukan ini yang akan bekerja dengan input standar.

Akan
sumber
1
Ini berfungsi dengan baik untuk karakter unicode yang tidak termasuk karakter hex A sampai F. harus membaca: untuk kode desimal . Ada banyak angka heksadesimal yang tidak menggunakan AF. Seperti 10, yang bukan sepuluh kemudian ...
Arjan
1
Itu tidak berguna bagi saya ketika saya perlu mengetikkan u + 23AF.
Will
4
Maksud saya adalah: Anda tidak dapat mengetikkan hal-hal seperti u + 0041 (hex 41, desimal 65) menggunakan tombol angka juga (karena orang perlu mengetik 65 daripada 41) - fileformat.info/info/unicode/char/0041 Jadi, menggunakan Alt-trick berfungsi dengan baik untuk kode desimal, tetapi tidak untuk kode heksadesimal .
Arjan
1
@ Akan: metode "alt + NN ..." mengharapkan desimal , bukan notasi hex dari posisi karakter. Unicode menggunakan hex. Jadi jika Anda ingin mengetikkan apa yang Unicode wakili sebagai "U + 23AF" Anda perlu mengubah hex == 23AF menjadi desimal == 9135, dan kemudian ketik "alt + 9135". Itulah satu - satunya metode umum yang ada. Tetapi: Anda menginginkan karakter yang mungkin masih belum muncul seperti yang diharapkan di bidang teks atau dokumen, jika font yang saat ini Anda pilih tidak memiliki tempat "U + 23AF" (atau jika bukan font Unicode di tempat pertama!).
Kurt Pfeifle
@ Arjan: Anda tidak mengetik karakter hex dengan metode "alt + nnn". Anda hanya mengetik kode karakter desimal . Itu sebabnya Anda tidak bisa mengetik string "U + 1234" lurus (yang tidak mengandung karakter "af" yang dibenci) ke dalam keypad numerik Anda sebagai "alt + 1234", tetapi Anda perlu mengubah hex == 1234 menjadi dec = = 4660 dan kemudian ketik "alt + 4660" sebelum Anda ( MUNGKIN ) mendapatkan apa yang Anda inginkan. Jadi pernyataan Anda "menggunakan Alt-trick tidak bekerja untuk kode hexdecimal" tepat untuk mengatasi masalah, tetapi Anda tidak dapat memahaminya sendiri :-)
Kurt Pfeifle

Jawaban:

23

Jawaban harrymc baik, asalkan Anda dapat / diizinkan untuk mengubah pengaturan registri.

Jika tidak, Anda dapat menggunakan Aksesori Kalkulator Windows untuk mengkonversi dari heksadesimal ke desimal. Mode default tidak akan melakukan ini: XP dan Vista memiliki "mode Ilmiah, sedangkan Windows 7, 8, 8.1 dan 10 memiliki mode" Programmer ".

Pilih basis Hex , dan kemudian ketik angka heksadesimal Anda. Kemudian ubah ke basis Des untuk melihat nilai ekuivalen dalam desimal. Itu nomor yang harus Anda ketik ke keypad numerik Anda sambil menahan tombol Alt .

Ini mungkin tergantung pada bahasa input, dan Anda mungkin perlu awalan nol ke nilai desimal.

Mike Hanson
sumber
Anda juga dapat menghitung dengan set /adi jendela perintah ;-). Untuk mengubah hex = 4321 menjadi desimal, ketik saja set /a 4*16*16*16+3*16*16+2*16+1dan hasilnya akan muncul sebagai 17185
Kurt Pfeifle
3
Atau, Anda set /a 0x4321juga dapat menampilkan 17185.
Marcks Thomas
6
Jawabannya menyesatkan, karena itu tidak menyebutkan bahwa nol depan diperlukan ketika menggunakan angka desimal di luar rentang Ascii (> 127). Jika Anda ingin mengetik U + 23AF dan karenanya mengonversi 23AF ke desimal, 9135, dan kemudian mencoba menggunakan Alt 9135, Anda mendapatkan "» "(U + 00BB). Anda harus mengetikkan Alt 09135 (menggunakan numpad) untuk mendapatkan karakter yang tepat.
Jukka K. Korpela
8
Metode menggunakan angka desimal tergantung pada "bahasa input" (sebagai konsep Microsoft), sehingga hasilnya bervariasi berdasarkan sistem dan program. Misalnya, di sebagian besar program Windows, ketika bahasa sistem telah diatur ke bahasa Inggris atau bahasa Barat lainnya, hanya Windows Latin 1 karakter yang dapat diketik dengan cara ini. Alt 0n apa pun untuk n> 255 kemudian akan bekerja "modulo 256", yaitu dengan n dikurangi ke kisaran 0 ... 255 dengan membaginya dengan 256 dan mengambil sisanya.
Jukka K. Korpela
2
Jawaban ini salah. Alt + 0nnn (0-255) memasukkan karakter dari codepage ANSI sistem (mis. 1252). Nilai yang dimasukkan adalah modulo 256 seperti yang disebutkan di atas. Alt + nnn (0-255), tanpa nol di depan, memasukkan karakter dari codepage OEM sistem (misalnya 437 atau 850). Namun, 31 kode pertama bukan karakter kontrol ASCII normal, tetapi sebaliknya mesin terbang yang ditampilkan untuk karakter ini pada PC 1980-an yang menjalankan DOS. Di Windows API, yang terakhir sesuai dengan menggunakan MB_USEGLYPHCHARSbendera ketika decoding byte ke Unicode via MultiByteToWideChar.
Eryk Sun
39

Menemukan ini di Cara memasukkan karakter Unicode di Microsoft Windows :

Saya menguji ini pada Windows XP dan Windows 2003. Metode ini berfungsi terlepas dari pengaturan bahasa Anda, tetapi yang paling sulit untuk mengetik:

  1. Tekan dan tahan tombol Alt.
  2. Tekan tombol + (plus) pada keypad numerik.
  3. Ketikkan nilai unicode hexidecimal.
  4. Lepaskan tombol Alt.

Sayangnya, ini tampaknya memerlukan pengaturan registri. Sudah diatur di komputer saya, tetapi beberapa pembaca melaporkan bahwa metode ini tidak berhasil untuk mereka, dan ini mungkin sebabnya. Jika Anda tidak tahu apa itu registri, jangan coba ini. Di bawah HKEY_CURRENT_USER\Control Panel\Input Method, setel EnableHexNumpad ke "1". Jika Anda harus menambahkannya, tetapkan jenisnya menjadi REG_SZ.

Anda harus keluar kemudian masuk setelah perubahan registri ini, atau bahkan reboot.

harrymc
sumber
1
jika saya tidak tahu apa itu registri, maka saya tidak tahu bagaimana cara mencoba keduanya.
Vanuan
5
Jika Anda tidak tahu apa itu registri, jangan pernah menyentuhnya. Minta bantuan seseorang yang Anda kenal.
Wug
+1 tetapi beberapa hal: (i) di Kedua Firefox dan IE jika kode hex yang Anda coba ketik berisi leeter yang sesuai dengan pintasan Alt + [huruf] untuk menu, menu turun ke bawah dan Anda tidak dapatkan karakter Anda (ini memecah E&F pada keduanya, A pada IE dan B di Firefox, notepad berfungsi dengan baik seperti halnya kotak Winkey + R "run"); (ii) REG_SZ dapat muncul di klik kanan menu entri baru sebagai "Registry String"
Chris H
Apakah ini seharusnya berfungsi di semua aplikasi? Saya dapat menggunakannya di notepad, notepad ++, Firefox dan bahkan Excel, tetapi tidak di Word, Outlook, PowerPoint atau Lync. Ini di W7.
Didier L
3
Hai harrymc. Bagaimana cara saya mengetik huruf yang terkandung dalam hex? contoh: "👉" = 👉 - setelah saya menekan Fperintah menu alt dieksekusi di windows. Itu tidak terbang dengan konversi ke desimal (128073) tidak menambahkan nol terkemuka.
Matas Vaitkevicius
17

Pada Mac OS X: buka International di System Preferences, dan di Menu Input pilih "Unicode Hex Input" untuk menambahkan opsi ini ke menu input. Kedengarannya jelas, tetapi ini tersembunyi dalam daftar panjang bahasa, antara Ukraina dan Vietnam. Ketika dipilih, tahan Option dan ketik kode hex 4 digit.

Juga pada OS X: Kalkulator dapat diatur ke mode Programmer (Cmd-3), yang memungkinkan untuk memasukkan kode desimal, oktal dan heksadesimal, yang kemudian ditampilkan sebagai ASCII atau Unicode. Namun, Salin akan memberikan satu kode, bukan karakter yang setara. Siapa saja?

(Untuk Windows, lihat Cara memasukkan karakter Unicode di Microsoft Windows ; untuk metode input lainnya, lihat Wikipedia .)

Dan di sini di Pengguna Super:

Dan untuk pergi ke ekstrem:

Arjan
sumber
9

Di Ubuntu (dan variannya, seperti LinuxMint) Anda dapat memasukkan nilai Unicode dengan menekan Ctrl+ Shift+ udiikuti oleh nilai Unicode dan Enter, misalnya:

Ctrl+ Shift+ u 263alalu Masukkan hasil:

Teks: ☺
Tangkapan layar:teks alternatif

Anda mungkin dapat memasangkan ini dengan AutoHotkey untuk input yang lebih mudah, atau kemungkinan input di Windows.

JMD
sumber
2
Sayangnya itu hanya berfungsi di aplikasi GTK +.
Siput mekanik
2
Anda juga dapat menahan Ctrl-Shift sambil mengetik kode, yang menghindari keharusan menekan Enter sesudahnya.
Siput mekanik
1
Saya telah menemukan solusi yang lebih baik: Anda dapat menambahkan tanda aksen ke karakter sebelumnya menggunakan Unicode yang menggabungkan tanda diakritik. Unicode 0301 - 0308 berguna untuk Pinyin. misalnya: "a" + [ctrl] [shift] [u] + 0301 [kembali] -> á. Daftar pinyin: ó -> 0301; ò -> 0300; ō -> 0304; ŏ -> 0306; ö -> 0308; lihat en.wikipedia.org/wiki/Combining_character#Unicode_ranges
emf
6

Saya telah menulis alat Input Unicode AutoHotkey kecil karena saya tidak menemukan solusi yang lebih baik. Anda dapat memasukkan karakter unicode dengan Shift+ Ctrl+ U.

Dialog Unicode

Pada dasarnya, ini mengubah entri ke karakter unicode dan "mengetik" di posisi kursor.

Itu tidak mendukung karakter unicode 6 digit. Juga, jika Anda memiliki bidang input di mana semua teks dipilih pada kehilangan fokus, semua teks akan ditimpa (saya rasa saya ingat versi Firefox lama menunjukkan perilaku ini).

Sebagai referensi, di sini sumber AutoHotkey jika Anda ingin mengompilasinya sendiri:

#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 <[email protected]> / granjow.net
return

+^u::
InputBox, codepoint, Unicode code point, U+
if not ErrorLevel
    Send {U+%codepoint%}
return
Simon A. Eugster
sumber
2

Itu juga tergantung di mana Anda ingin menggunakan karakter khusus. Dengan aplikasi MS Office, Anda tidak perlu menggunakan kode ASCII untuk karakter tertentu - misalnya, untuk mengetik diaresis (yaitu, dua titik yang Anda lihat di atas beberapa karakter dengan kata-kata seperti naif), di Word / Outlook / etc Anda dapat menekan Ctrl + ':' (yaitu, Ctrl + Shift +;) diikuti oleh 'i'.

Ada daftar cara pintas yang tersedia di http://word.mvps.org/FAQs/General/InsertSpecChars.htm ... cukup gulir ke bawah ke "Karakter Internasional".

Saya tidak tahu apakah ada aplikasi non-Office yang mendukung pintasan serupa.

Chris J
sumber
2

Linux (termasuk aplikasi Qt / KDE)

Seperti yang disebutkan JMD, Anda dapat menekan Ctrl- Shift, mengetik u1f4a9, dan melepaskan untuk mengetik U + 1F4A9 di aplikasi GTK + (termasuk program GNOME, Firefox, Chromium, dan LibreOffice, bahkan di bawah KDE). Beberapa program juga mendukung mengetik dalam urutan Ctrl- Shift- U, 1, f, 4, a, 9, Enter.

Sayangnya, ini tidak berfungsi di aplikasi Qt (termasuk program KDE, Mathematica, dan VLC). Untuk karakter BMP, ada metode input Unicode IBus. Untuk mengaktifkan, buka preferensi IBus dan tambahkan metode input "Other - unicode (m17n)" (dua paket ibus-m17n dan ibus-qt4 harus diinstal). Saat kursor berada di area teks, aktifkan metode input (menggunakan toolbar IBus atau pintasan keyboard). Saat aktif, metode input memungkinkan Anda mengetik Ctrl- Shift- Udiikuti oleh 4 digit hex, untuk memasukkan karakter Unicode yang sesuai. Ini hanya berfungsi untuk karakter BMP.

(Diuji di bawah Ubuntu.)

Siput mekanik
sumber
Tidak bekerja pada KDE untuk saya ..
Jack
Di mana saya dapat menemukan preferensi IBus?
anarcat
1

Mungkin bukan apa yang Anda minta, tetapi apa yang saya cari. Pada Windows 10, Anda dapat menekan Win+ .atau Win+ ;untuk membuka browser emoji:

masukkan deskripsi gambar di sini

Seperti yang Anda lihat pada gambar di atas, Anda juga dapat mencari hanya dengan mengetik.

Aske B.
sumber