Japanese Keyboard (Windows CE 5.0)
The Japanese keyboard layout is more complex than other keyboard layouts because of the language complexities. Japanese keyboards, which are available for many hardware platforms, are based on IBM and NEC designs. The BSP_KEYBD_JPN2 setting uses the IBM keyboard, which is the default. The BSP_KEYBD_JPN1 setting uses the NEC keyboard. You can create either keyboard by linking to the Jpn1 or Jpn2 libraries in the %_WINCEROOT%\Public\Common\Oak\Drivers\Keybd\Scanvk directory.
The following table shows the scan code to virtual key mapping for the Japanese keyboard layout. The at (@) sign, which is included as part of the character, indicates that the character is a dead key. A dead key, when pressed in combination with second Unicode character, results in a third Unicode character. The dead-key tables show the Unicode characters that result from specific dead-key combinations. Virtual keys for the omitted scan codes equal zero (0).
Scan code | VK_ key |
---|---|
00 | _none_ |
01 | ESCAPE |
02 | 1 |
03 | 2 |
04 | 3 |
05 | 4 |
06 | 5 |
07 | 6 |
08 | 7 |
09 | 8 |
0A | 9 |
0B | 0 |
0C | OEM_MINUS |
0D | OEM_7 |
0E | BACK |
0F | TAB |
10 | Q |
11 | W |
12 | E |
13 | R |
14 | T |
15 | Y |
16 | U |
17 | I |
18 | O |
19 | P |
1A | OEM_3 |
1B | OEM_4 |
1C | RETURN |
1D | LCONTROL |
1E | A |
1F | S |
20 | D |
21 | F |
22 | G |
23 | H |
24 | J |
25 | K |
26 | L |
27 | OEM_PLUS |
28 | OEM_1 |
29 | DBE_SBCSCHAR |
2A | LSHIFT |
2B | OEM_6 |
2C | Z |
2D | X |
2E | C |
2F | V |
30 | B |
31 | N |
32 | M |
33 | OEM_COMMA |
34 | OEM_PERIOD |
35 | OEM_2 |
36 | RSHIFT |
37 | MULTIPLY |
38 | LMENU |
39 | " " |
3A | DBE_ALPHANUMERIC |
3B | F1 |
3C | F2 |
3D | F3 |
3E | F4 |
3F | F5 |
40 | F6 |
41 | F7 |
42 | F8 |
43 | F9 |
44 | F10 |
45 | NUMLOCK |
46 | OEM_SCROLL |
47 | HOME |
48 | UP |
49 | PRIOR |
4A | SUBTRACT |
4B | LEFT |
4C | CLEAR |
4D | RIGHT |
4E | ADD |
4F | END |
50 | DOWN |
51 | NEXT |
52 | INSERT |
53 | DELETE |
54 | SNAPSHOT |
55 | _none_ |
56 | _none_ |
57 | F11 |
58 | F12 |
59 | CLEAR |
5A | NONAME |
5B | NONAME |
5C | NONAME |
5D | EREOF |
5E | _none_ |
5F | NONAME |
60 | _none_ |
61 | _none_ |
62 | _none_ |
63 | _none_ |
64 | F13 |
65 | F14 |
66 | F15 |
67 | F16 |
68 | F17 |
69 | F18 |
6A | F19 |
6B | F20 |
6C | F21 |
6D | F22 |
6E | F23 |
6F | _none_ |
70 | DBE_HIRAGANA |
71 | _none_ |
72 | _none_ |
73 | OEM_102 |
74 | _none_ |
75 | _none_ |
76 | F24 |
77 | _none_ |
78 | _none_ |
79 | CONVERT |
7A | _none_ |
7B | NONCONVERT |
7C | TAB |
7D | OEM_5 |
7E | ABNT_C2 |
7F | OEM_PA2 |
E01C | RETURN |
E01D | RCONTROL |
E033 | _none_ |
E035 | DIVIDE |
E037 | SNAPSHOT |
E038 | RMENU |
E042 | _none_ |
E043 | _none_ |
E044 | _none_ |
E046 | CANCEL |
E047 | HOME |
E048 | UP |
E049 | PRIOR |
E04B | LEFT |
E04D | RIGHT |
E04F | END |
E050 | DOWN |
E051 | NEXT |
E052 | INSERT |
E053 | DELETE |
E05B | LWIN |
E05C | RWIN |
E05D | APPS |
E05E | POWER |
E05F | SLEEP |
E0F1 | _none_ |
E0F2 | _none_ |
E11D | PAUSE (See Below) |
The BREAK key is sent as the sequence E1, left CTRL, NUMLOCK. The keyboard driver must convert the E1+left CTRL sequence to the BREAK key and ignore the NUMLOCK.
The next part of the Japanese keyboard layout is the virtual key to character mapping. This mapping is dependent upon the state of other modifier keys. Some characters are shown as symbols, which are described following these tables. The processing of virtual keys should be performed in the order in which the following tables are ordered.
The following table shows the characters that should be generated for each virtual key, alone and in combination with modifier keys.
Virtual key | CAPLOCK/ KANALOCK | Character | SHIFT | KANA | KANA+SHIFT |
---|---|---|---|---|---|
0 | KANALOK | 0 | WCH_NONE | WCH_WA | WCH_WO |
1 | KANALOK | 1 | ! | WCH_NU | WCH_NU |
3 | KANALOK | 3 | # | WCH_A | WCH_AA |
4 | KANALOK | 4 | $ | WCH_U | WCH_UU |
5 | KANALOK | 5 | % | WCH_E | WCH_EE |
7 | KANALOK | 7 | 0x27 | WCH_YA | WCH_YAA |
8 | KANALOK | 8 | ( | WCH_YU | WCH_YUU |
9 | KANALOK | 9 | ) | WCH_YO | WCH_YOO |
A | CAPLOK | KANALOK | a | A | WCH_TI | WCH_TI |
B | CAPLOK | KANALOK | b | B | WCH_KO | WCH_KO |
C | CAPLOK | KANALOK | c | C | WCH_SO | WCH_SO |
D | CAPLOK | KANALOK | d | D | WCH_SI | WCH_SI |
E | CAPLOK | KANALOK | e | E | WCH_I | WCH_II |
F | CAPLOK | KANALOK | f' | F | WCH_HA | WCH_HA |
G | CAPLOK | KANALOK | g | G | WCH_KI | WCH_KI |
H | CAPLOK | KANALOK | h | H | WCH_KU | WCH_KU |
I | CAPLOK | KANALOK | i | I | WCH_NI | WCH_NI |
J | CAPLOK | KANALOK | j | J | WCH_MA | WCH_MA |
K | CAPLOK | KANALOK | k | K | WCH_NO | WCH_NO |
L | CAPLOK | KANALOK | l | L | WCH_RI | WCH_RI |
M | CAPLOK | KANALOK | m | M | WCH_MO | WCH_MO |
N | CAPLOK | KANALOK | n | N | WCH_MI | WCH_MI |
O | CAPLOK | KANALOK | o | O | WCH_RA | WCH_RA |
P | CAPLOK | KANALOK | p | P | WCH_SE | WCH_SE |
Q | CAPLOK | KANALOK | q | Q | WCH_TA | WCH_TA |
R | CAPLOK | KANALOK | r | R | WCH_SU | WCH_SU |
S | CAPLOK | KANALOK | s | S | WCH_TO | WCH_TO |
T | CAPLOK | KANALOK | t | T | WCH_KA | WCH_KA |
U | CAPLOK | KANALOK | u | U | WCH_NA | WCH_NA |
V | CAPLOK | KANALOK | v | V | WCH_HI | WCH_HI |
W | CAPLOK | KANALOK | w | W | WCH_TE | WCH_TE |
X | CAPLOK | KANALOK | x | X | WCH_SA | WCH_SA |
Y | CAPLOK | KANALOK | y | Y | WCH_NN | WCH_NN |
Z | CAPLOK | KANALOK | z | Z | WCH_TU | WCH_TUU |
OEM_1 | KANALOK | ":" | * | WCH_KE | WCH_KE |
OEM_2 | KANALOK | / | ? | WCH_ME | WCH_MD |
OEM_3 | KANALOK | @ | "`" | WCH_VS | WCH_VS |
OEM_7 | KANALOK | ^ | ~ | WCH_HE | WCH_HE |
OEM_8 | 0 | WCH_NONE | WCH_NONE | WCH_NONE | WCH_NONE |
OEM_COMMA | KANALOK | "," | < | WCH_NE | WCH_IC |
OEM_PERIOD | KANALOK | "." | > | WCH_RU | WCH_IP |
OEM_PLUS | KANALOK | ";" | + | WCH_RE | WCH_RE |
TAB | 0 | \t | \t | \t | \t |
ADD | 0 | + | + | + | + |
DECIMAL | 0 | "." | "." | "." | "." |
DIVIDE | 0 | / | / | / | / |
MULTIPLY | 0 | * | * | * | * |
SUBTRACT | 0 | - | - | - | - |
Note CAPSLOK and KANALOK indicate that a key is affected by the state of the CAPS LOCK and KANA LOCK keys.
Virtual key | CAPSLOCK / KANALOCK | Char | SHIFT | KANA | KANA+SHIFT |
---|---|---|---|---|---|
BACK | 0 | \b | \b | \b | \b |
CANCEL | 0 | 0x03 | 0x03 | 0x03 | 0x03 |
ESCAPE | 0 | 0x1b | 0x1b | 0x1b | 0x1b |
OEM_4 | KANALOK | [ | { | WCH_SVS | WCH_OB |
OEM_5 | KANALOK | \\ | | | WCH_PS | WCH_PS |
OEM_102 | KANALOK | \\ | _ | WCH_RO | WCH_RO |
OEM_6 | KANALOK | ] | } | WCH_MU | WCH_CB |
RETURN | 0 | \r | \r | \r | \r |
SPACE | 0 | " " | " " | " " | " " |
VK_key | CTRL | KANA+CTRL |
---|---|---|
BACK | 0x7f | 0x7f |
CANCEL | 0x03 | 0x03 |
ESCAPE | 0x1b | 0x1b |
OEM_4 | 0x1b | 0x1b |
OEM_5 | 0x1c | 0x1c |
OEM_102 | 0x1c | 0x1c |
OEM_6 | 0x1d | 0x1d |
RETURN | \n | \n |
SPACE | 0x20 | 0x20 |
Virtual key | CAPSLOCK / KANALOK* | Char | SHIFT | KANA | KANA+SHIFT |
---|---|---|---|---|---|
2 | KANALOK | 2 | " | WCH_HU | WCH_HU |
6 | KANALOK | 6 | & | WCH_O | WCH_OO |
OEM_MINUS | KANALOK | - | = | WCH_HO | WCH_HO |
Virtual key | CTRL | KANA+CTRL | SHIFT+CTRL | KANA+SHIFT+CTRL |
---|---|---|---|---|
2 | WCH_NONE | WCH_NONE | 0x00 | 0x00 |
6 | WCH_NONE | WCH_NONE | 0x1e | 0x1e |
OEM_MINUS | WCH_NONE | WCH_NONE | 0x1f | 0x1f |
VK_ | CAPLOK / KANALOK | Char | SHIFT | KANA | KANA+SHIFT |
---|---|---|---|---|---|
NUMPAD0 | 0 | 0 | WCH_NONE | 0 | WCH_NONE |
NUMPAD1 | 0 | 1 | WCH_NONE | 1 | WCH_NONE |
NUMPAD2 | 0 | 2 | WCH_NONE | 2 | WCH_NONE |
NUMPAD3 | 0 | 3 | WCH_NONE | 3 | WCH_NONE |
NUMPAD4 | 0 | 4 | WCH_NONE | 4 | WCH_NONE |
NUMPAD5 | 0 | 5 | WCH_NONE | 5 | WCH_NONE |
NUMPAD6 | 0 | 6 | WCH_NONE | 6 | WCH_NONE |
NUMPAD7 | 0 | 7 | WCH_NONE | 7 | WCH_NONE |
NUMPAD8 | 0 | 8 | WCH_NONE | 8 | WCH_NONE |
NUMPAD9 | 0 | 9 | WCH_NONE | 9 | WCH_NONE |
The following table defines the character symbols used in the previous table.
Define | Unicode value | Character |
---|---|---|
WCH_IP | FF61 | Ideographic period |
WCH_OB | FF62 | Opening corner bracket |
WCH_CB | FF63 | Closing corner bracket |
WCH_IC | FF64 | Ideographic comma |
WCH_MD | FF65 | Katakana middle dot |
WCH_WO | FF66 | Katakana syllable wo |
WCH_AA | FF67 | Katakana letter lowercase a |
WCH_II | FF68 | Katakana letter lowercase i |
WCH_UU | FF69 | Katakana letter lowercase u |
WCH_EE | FF6A | Katakana letter lowercase e |
WCH_OO | FF6B | Katakana letter lowercase o |
WCH_YAA | FF6C | Katakana syllable lowercase ya |
WCH_YUU | FF6D | Katakana syllable lowercase yu |
WCH_YOO | FF6E | Katakana syllable lowercase yo |
WCH_TUU | FF6F | Katakana syllable lowercase tu |
WCH_PS | FF70 | Katakana prolonged sound mark |
WCH_A | FF71 | Katakana letter A |
WCH_I | FF72 | Katakana letter I |
WCH_U | FF73 | Katakana letter U |
WCH_E | FF74 | Katakana letter E |
WCH_O | FF75 | Katakana letter O |
WCH_KA | FF76 | Katakana syllable ka |
WCH_KI | FF77 | Katakana syllable ki |
WCH_KU | FF78 | Katakana syllable ku |
WCH_KE | FF79 | Katakana syllable ke |
WCH_KO | FF7A | Katakana syllable ko |
WCH_SA | FF7B | Katakana syllable sa |
WCH_SI | FF7C | Katakana syllable si |
WCH_SU | FF7D | Katakana syllable su |
WCH_SE | FF7E | Katakana syllable su |
WCH_SO | FF7F | Katakana syllable so |
WCH_TA | FF80 | Katakana syllable ta |
WCH_TI | FF81 | Katakana syllable ti |
WCH_TU | FF82 | Katakana syllable tu |
WCH_TE | FF83 | Katakana syllable te |
WCH_TO | FF84 | Katakana syllable to |
WCH_NA | FF85 | Katakana syllable na |
WCH_NI | FF86 | Katakana syllable ni |
WCH_NU | FF87 | Katakana syllable nu |
WCH_NE | FF88 | Katakana syllable ne |
WCH_NO | FF89 | Katakana syllable no |
WCH_HA | FF8A | Katakana syllable ha |
WCH_HI | FF8B | Katakana syllable hi |
WCH_HU | FF8C | Katakana syllable hu |
WCH_HE | FF8D | Katakana syllable he |
WCH_HO | FF8E | Katakana syllable ho |
WCH_MA | FF8F | Katakana syllable ma |
WCH_MI | FF90 | Katakana syllable mi |
WCH_MU | FF91 | Katakana syllable mu |
WCH_ME | FF92 | Katakana syllable me |
WCH_MO | FF93 | Katakana syllable mo |
WCH_YA | FF94 | Katakana syllable ya |
WCH_YU | FF95 | Katakana syllable yu |
WCH_YO | FF96 | Katakana syllable yo |
WCH_RA | FF97 | Katakana syllable ra |
WCH_RI | FF98 | Katakana syllable ri |
WCH_RU | FF99 | Katakana syllable ru |
WCH_RE | FF9A | Katakana syllable re |
WCH_RO | FF9B | Katakana syllable ro |
WCH_WA | FF9C | Katakana syllable wa |
WCH_NN | FF9D | Katakana letter n |
WCH_VS | FF9E | Katakana voiced sound mark |
WCH_SVS | FF9F | Katakana semi-voiced sound mark |
See Also
Keyboard Layout Generator Tool
Send Feedback on this topic to the authors