Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
Windows Mobile Supported Windows Embedded CE Supported
4/14/2010

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

Other Resources

Keyboard Layout Generator Tool