jis2004 with windows sdk
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.