jis2004 with windows sdk

51
Windows SDK レレレレレ JIS X 0213:2004 レレ 今今今今今今今今今今今今今今今今今今今今今今今Codeseek & 今今今今今今今今今 2007/1/30 K.Kamegawa

Upload: kazushi-kamegawa

Post on 19-Jun-2015

2.633 views

Category:

Technology


7 download

DESCRIPTION

JIS X 0213:2004をWindows SDKレベルでどうやって対応しようかというプレゼンしたときの資料です。2007年に作ったものですが、今でもあまり変わらないはずです。

TRANSCRIPT

  • 1. Windows SDKJIS X 0213:2004

    Codeseek &
    2007/1/30 K.Kamegawa

2. Agenda

JIS X 0213:2004

Windows SDK


3.

4. ()
()
JIS--1161

5. ()

(Unicode)VS (JISUnicode)

()
JIS
JIS X 0208
JIS X 0213

6. ()


Shift_JIS
ISO-2022-JP(JIS)
EUC-JP
UnicodeUTF-8,UTF-16
7. ()


JIS



()
8. JIS X 0213:2004
JIS X 0213:2004
9. WindowsUnicode
Windows NT 3.1Unicode 1.0OS
OSJavaUnicode1991
Unicode 1.0UTF-16UTF-16
10. WindowsUnicode
1996Unicode 2.0
Windows 2000Unicode 2.0
Unicode 1.0BMP(00)

Unicode1024(:0xD8000xDBFF,:0xDC000xDFFF)
16((10241024)(256256))=16
(32bit16bit)
JIS X 0213:2004
11. JIS X 0213:2004
JIS X 0208(Windows XPJIS90+)
435411233
JIS X 0208

(2007/1/15)
(VistaXP)







12.

13.
Windows SDK(Vista6000.0)
Visual Studio 2005 Express Edition(MFCStandard)
MFCUnicode
14. Visual Studio 2005

15. Windows SDK
Unicode
16. Unicode
JIS X 0213:2004

()
Unicode
() vs()
17. Unicode

BMP(U+E000U+F8FF6400)
15(U+Fxxxx)
16(U+10xxxx)
RichEdit
U+F020U+F0FF(:900284)
18.
Unicode
C(char)
wchar_t
UnicodeL
wchar_t2byte(UTF-8)

19.
C/C++
API
:wchar_tunsigned short
20. Unicode
Windows
charTCHAR
UnicodeWSTR,WCHAR
TEXT:TEXT()
_UNICODE
21. Unicode
Windows API
C/C++declareVB

int WINAPI MessageBoxA(HWND hWnd,LPCSTRlpText, LPCSTR lpCaption,UINTuType);
int WINAPI MessageBoxW(HWND hWnd,LPCWSTRlpText, LPCWSTR lpCaption,UINTuType);
#ifdef UNICODE
#define MessageBoxMessageBoxW
#else
#define MessageBoxMessageBoxA
#endif // !UNICODE
22. Unicode
IME
WM_IME_COMPOSITION



23.


Shift_JIS0x5c(2byte)
ISO-2022-JPESC+SHIFT-IN,SHIFT-OUT
24.
25. Windows API
IsTextUnicode()
Unicode()
IS_TEXT_UNICODE_STATISTICS, IS_TEXT_UNICODE_REVERSE_STATISTICS100%
:KB837192

26. Shift_JISUnicode
MultiByteToWideChar()
MultiByte(Shift_JIS)Unicode(UTF-16)UTF-7/8
COMAPI

(0)

ATLA2W()
27. UnicodeShift_JIS
WideCharToMultiByte()
Unicode
WC_NO_BEST_FIT_CHARS
lpDefaultChar

lpUsedDefaultChar
TRUE
lpDefaultCharlpUsedDefaultCharNULL
28.

Unicode(Shift_JIS)
Shift_JIS(Unicode)

29.
UnicodeShift_JIS1:1
NECIBMIBM

WAVEDASH,YEN-SIGN()
U+00A5()->0x5c()->U+005c(BACKSLASH)

Difference of Unicode Conversion Tables
(http://www.autumn.org/etc/unidif.html)
A Unicode vender-specific character table for Japanese
(http://www.ingrid.org/java/i18n/unicode.html)
30.
(U+30AB)(U+3099)U+30AC
(U+0391) (U+0384)(U+0386)

Windows Vista

31.

NormalizedString()
IsNormalizedString()
Windows SDK
lib()
normaliz.dllnormalization.dllimport

32. API
CharPrev/CharNext
lstrlen(CRTstrlen)
StringCchLength
(BYTE->WORD)

33.
OpenTypeFeature Tag

Win32APIUniscribe
VistaOpenTypeAPI
Uniscribe(http://www.catch22.net/tuts/editor14.asp)
FirefoxWin32
System.Windows.Documents.GryphsWPF
34. UniscribeOpenType
Feature Tag
APIOK
VistaOpenTypeTagAPI
C/C++
#define WINVER 0x0600
#define _WIN32_WINNT 0x0600
Uniscribe API()
35. OpenType Tag
Uniscribe
ScriptShapeOpenType
ScriptPlaceOpenType
ScriptTextOut
()
Bidi()
Option
36.
UniscribeOpenType

orz
37. Unicode
Shift_JIS
38.
UnicodeShift_JIS
GUI
()
(Bidi)
39.
Unicode
40.
1byte

41.

42. Vista

VistaXP/2003



43.
VistaVer 2.5
MSMS
(5.0)
JIS90

OpenTypeFeature TagJIS90
44.

45. MS IME2007Unicode
MS IME 2007JIS X 0213:2004
2007 Office SystemVistaIME
46.
MicrosoftJIS X 0213:2004

47.
XPMS2.3
Vista2.5


48.
cmd.exe932(cp932)
Unicode
chcp 65001UTF-8()
DOS
49.
(http://d.hatena.ne.jp/hasegawayosuke/)
Unicode TEXT HUCKS

(http://internet.watch.impress.co.jp/www/column/ogata/)
Microsoft
JIS X 0213:2004
Sorting It All Out(http://blogs.msdn.com/michkap/)Michelblog
Slashdot Japan
(http://slashdot.jp/~yasuoka/journal)
Web
Shift_JIS,Unicode,EUC(Wikipedia)Google
50. Special Thanks
(http://cs.gogo-asp.net/blogs/libaty/default.aspx)
51.