MS_WindowsGaiji - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
è£è¶³ïŒæ¬ããŒãžã®äœçœ®ä»ãïŒ: åæã®æŠèŠã¯ç©ºæ¬ã ãã
æ¬ããŒãžã¯**ãå€åãšã¯äœãããããWindows ã§ã®éçšäžã®èœãšã穎ããŸã§**ã
äžéãæ±ã£ããå®åçãªèª¿æ»èšé²ã§ããããæ¬ããŒãžã®æ§æã åæç¥è âŠâŠ å€åãšã¯äœããæåã³ãŒãäžã®ã©ãã«çœ®ãããã åºæ¬æ å ± âŠâŠ å€åãšãã£ã¿ãå€åãã¡ã€ã«ïŒ*.TTE / *.EUFïŒ åé¡ãšå¯Ÿç ⊠Session 0 åé¢ã®åé¡ã垳祚å°å·ã®åé¡ â ãããæ¬é¡**ãSession 0 åé¢ã«ããããµãŒãã¹ããå€åã䜿ããªãã**ãšãã
ç¯ã®ææããæ¬ããŒãžã§æã䟡å€ã®ããéšåã§ããã
垳祚ããµãŒãåŽã§çæããã·ã¹ãã ã§å®éã«èžãåé¡ã§ããã
çŸåšãåãå¶çŽãæ®ã£ãŠããã**ãªããçŸåšã®èšèšæéã¯ãå€åãæ°èŠã«äœ¿ããªãã**ã§ããã
çç±ã¯æ¬ããŒãžèªèº«ãç¹°ãè¿ãè¿°ã¹ãŠããéãã§ãã»å¥ç°å¢ãšããŒã¿äº€æã§ããªãïŒã³ãŒãã®æå³ãç°å¢ããšã«éãïŒ ã»Microsoft ããä»ãã·ã³ãžã®ç§»æ€ããµããŒãå€ããšããŠãã ã»PDFã»å°å·ã»Web ã§è¡šç€ºã§ããªãããšããã ã»ãµãŒãã¹ïŒSession 0ïŒãã䜿ããªã**代æ¿ã¯ IVSïŒç°äœåã»ã¬ã¯ã¿ïŒ**ã§ãã
ïŒJISæå挢åã³ãŒãïŒã
æ¢åè³ç£ãšããŠã®å€åãéçšã»ç§»è¡ããéã®åèãšããŠæ¬ããŒãžãèªãã®ãããã
å€åïŒç°å¢äŸåæåïŒãšã¯ã
- äžè¬çãªæåéåïŒãã£ã©ã¯ã¿ ã»ããïŒã«å«ãŸããªãæåã®ããšãããã
- æ¥æ¬ã§äžè¬ã«ã¯ãJIS èŠæ Œã®æåã³ãŒã
ïŒé垞㯠JIS X 0208ãçšã« JIS X 0213 ã JIS X 0221ïŒã«å«ãŸããªãæåã®ããšãæãã - å€åã¯ããããããã©ã®ã³ãŒãã«ã©ã®æåãå
¥ããŠããããåæãããŠããå Žåãé€ãã
å¥ã®ç°å¢ãšã®ããŒã¿ã®ããåããã§ããªãããã®ãããå€åã䜿çšããããšã¯å¥œãŸãããªããšãããã - ã¡ãŒã«ãªã©ãã·ã¹ãã ã«ãããããçµã¿èŸŒãã§ããå€åã
ã·ã¹ãã å€åïŒãã³ãå®çŸ©æåïŒãšåŒã³ã
åã ã®ãŠãŒã¶ãäœæããå€åã¯ãŠãŒã¶å€åïŒãŠãŒã¶å®çŸ©æåïŒãšåŒã¶ã
- JIS X 0208 ïŒ 1997
0xF000 ïœ 0xFFFC ã«å€åãå ¥ããããšãååçŠæ¢ - JIS X 0213 ïŒ 2000
0xF000 ïœ 0xFFFC ã®é åãå€åé åãšããŠäœ¿çš - JIS X 0221 ïŒUnicodeïŒ
以äžã®é åãå€åé åãšããŠäœ¿çš- U+E000 ïœ U+F8FFã
- U+000F0000 ïœ U+000FFFFDã
- U+00100000 ïœ U+0010FFFD
ç§»è¡ã¡ã¢ïŒJIS X 0213 ã®èšè¿°ãéïŒ: åæã® 2 è¡ç®ã¯
ã0xF000 ïœ 0xFFFC ã®é åãå€åé åãšããŠäœ¿çšããšãããã
JIS X 0213 ã¯ããã®é åã
第 3ã»ç¬¬ 4 æ°Žæºã®ãæ£èŠã®æåãã«å²ãåœãŠãèŠæ Œã§ãã
ïŒïŒå€åé åãšããŠäœ¿ããªããªã£ãïŒããShift_JIS ã® 0xF040ïœ0xF9FCïŒåŸæ¥ã®å€åé åïŒã JIS X 0208 ã®éçš âŠ å€åïŒãŠãŒã¶å®çŸ©ïŒãšããŠäœ¿ãããŠãã JIS X 0208:1997 ⊠ãå€åãå ¥ããã®ã¯ååçŠæ¢ããšæèš JIS X 0213:2000/2004 ⊠ã第3ã»ç¬¬4æ°ŽæºæŒ¢åãå²ãåœãŠããâ â Shift_JIS-2004 ã§ã¯ãåŸæ¥ã®å€åãšãè¡çªããã â ãã£ãšã Windows 㯠Shift_JIS-2004 ãæ¡çšããªãã£ãããã CP932 äžã§ã¯åŸæ¥éãå€åé åã®ãŸãŸæ®ã£ãã€ãŸããåæã® 1 è¡ç®ã»2 è¡ç®ã¯
**ãJIS ãå€åé åããªããæ¹åãžåããã**ãšããåãæµãã瀺ããŠããã
Windows ããã®æµãã«ä¹ããªãã£ãããã
çŸåšã CP932 ã®å€åã䜿ããŠããããšããæ§å³ã§ããã
Windows ã®æ©çš®äŸåæåïŒå€åïŒã§ããã
- Windows ã®å€åïŒç°å¢äŸåæåïŒ
- ã·ã¹ãã å€åïŒãã³ãå®çŸ©æåïŒ
- ãŠãŒã¶å€åïŒãŠãŒã¶å®çŸ©æåïŒ
ã®å€åã¯ãShift_JIS ã® 0xF040 ïœ 0xF9FC 㯠Unicode ã® U+E000 ïœ U+E757 ã«
é çªã«å¯Ÿå¿ä»ããããŠããïŒShift_JIS ã§ 0xF07F ãªã©ã®äœ¿çšäžå¯èœãªã³ãŒããã€ã³ãã¯é£ã°ãïŒã
ãã®ãããWindows äžã§ã¯ã
- å€åïŒç°å¢äŸåæåïŒ
- ã·ã¹ãã å€åïŒãã³ãå®çŸ©æåïŒ
- ãŠãŒã¶å€åïŒãŠãŒã¶å®çŸ©æåïŒ
ã® Unicode â Shift_JIS ã®ãšã³ã³ãŒãã£ã³ã°ããµããŒããããã
Windows ä»å±ã®å€åãšãã£ã¿ã§ã¯ U+E758ïœU+F8FF ã«ãå€åãäœæå¯èœã§ãããã
ããã«äœæãããã®ã¯ Unicode ç°å¢ã§ã®ã¿äœ¿çšå¯èœãšãªãã
ãªããWingdings ãªã©ã®ã·ã³ãã«ãã©ã³ãã®ã°ãªãã¯
Unicode ã§ã¯ U+F020 ïœ U+F0FF ã«å¯Ÿå¿ä»ããããŠããã
- [åè]ïŒãã€ã¯ããœãã ãµããŒã ãªã³ã©ã€ã³
- [IME] å€åãšãã£ã¿ã䜿çšããŠå€åãäœæããæ¹æ³
http://support.microsoft.com/kb/416747/ja - Unicodeã®ç§çšé åU+F020-U+F0FFã®ç¯å²ãã·ã³ãã«ãã©ã³ãçšã«äœ¿çšãããŠãã
http://support.microsoft.com/kb/900284/ja
- [IME] å€åãšãã£ã¿ã䜿çšããŠå€åãäœæããæ¹æ³
è£è¶³ïŒãã®å¯Ÿå¿ä»ãããå€åãåããçç±ïŒ: æ¬ç¯ã®å 容ã¯
Windows ã§å€åãå®çšã«ãªã£ãŠããä»çµã¿ã®æ žå¿ã§ãããæ£ç¢ºã§ããããShift_JISïŒCP932ïŒã®å€åé å â Unicode ç§çšé åã 0xF040 â U+E000 0xF041 â U+E001 â® â® 0xF07E â U+E03E ïŒ0xF07F 㯠Shift_JIS ã® 2 ãã€ãç®ã«äœ¿ããªãã®ã§é£ã°ãïŒ 0xF080 â U+E03F â® â® 0xF9FC â U+E757 åèš 1,880 åãã®å¯Ÿå¿è¡šã¯ Microsoft ãå®ãããã®ã§ããã
ä»ç€Ÿã®å€æã©ã€ãã©ãªã§ã¯éãå€ã«ãªãåŸãã
ãããã£ãŠã**ãå€åãåãããã®ã§ã¯ãªã
ãå€åã®ã³ãŒãã¯éãããåãéãã**ãšããçŸè±¡ãèµ·ãããU+E758ïœU+F8FF ã«äœã£ãå€åã®å¶çŽïŒåæã®ææã®éãïŒ:
ã»Shift_JIS ã«å¯Ÿå¿ããã³ãŒãããªã â CP932 ã«å€æããæç¹ã§å€±ãããïŒ"?" ã«ãªãïŒ ã»ãããã£ãŠãUnicode ã§äžè²«ããã·ã¹ãã å ã§ãã䜿ããªã ã»éã«èšãã°ããå šäœã UTF-8 ãªã 6,400 åãŸã§äœ¿ãããã·ã³ãã« ãã©ã³ãïŒWingdings çïŒã U+F020ïœU+F0FF ã䜿ã
ãšããç¹ããå®åäžã®èœãšã穎ã§ãããã»å€åããã®ç¯å²ã«äœããšãã·ã³ãã« ãã©ã³ããšãè¡çªããã ã»Word ã®ç®æ¡æžãèšå·ãªã©ããã®ç¯å²ã䜿ã â ææžãã³ããŒãããšãæå³ããªãæåãæ··ãã
-
æåã³ãŒã - Wikipedia > å€å
https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89#å€å -
ãã€ã¯ããœããæšæºãã£ã©ã¯ã¿ã»ãã - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E6%A8%99%E6%BA%96%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88ãã€ã¯ããœããæšæºãã£ã©ã¯ã¿ã»ããã¯ãWindows ã«ãããŠç¹å¥ãªãã©ã³ãã
èªåã§çšæããããšãªã衚瀺ã§ããæ¥æ¬èªã®æåéåã®ããšã§ããã
-
å€åãšãã£ã¿ã® UI ããè¡ããŸãã
-
å€åã®èšå®çšã® Win32 API ã¯ååšããªãããã§ãã
-
å€åèšå®ã¯å€åãã¡ã€ã«ã«åæ ãããã®ã§ãå€åãã¡ã€ã«ã®å·®æ¿ãã§èšå®å¯èœã§ãã
-
ãã€ã¯ããœããã¯ãäœæããå€åãä»ã®ãã·ã³ã§äœ¿çšããããšããµããŒãå€ãšããŠããŸãã
- ããããããã°ã©ã ïŒWin32 APIïŒããã®èšå®æ¹æ³ã¯ååšããªãããã
èšå®äœæ¥ãèªååããå Žåã¯ããã¡ã€ã«ã®å·®æ¿ãã§å¯Ÿå¿ãããããããŸããã
ãã®ããããã®ãããªå€åå·®ãæ¿ãæäœã¯ã»ã«ããµããŒãïŒèªå·±è²¬ä»»ïŒã§è¡ãå¿ èŠããããŸãã
- ããããããã°ã©ã ïŒWin32 APIïŒããã®èšå®æ¹æ³ã¯ååšããªãããã
è£è¶³ïŒãã®ç¶æ³ã¯çŸåšãå€ãã£ãŠããªãïŒ: å€åãäœæã»ç»é²ãã
å ¬åŒãª API ã¯ãçŸåšãæäŸãããŠããªãã
çŸåš å€åãšãã£ã¿ïŒ eudcedit.exeïŒWindows 11 ã«ã忢±ãããŠããïŒå€ãããïŒ äœæçš API ãªãïŒå€ãããïŒ æå¹å API EnableEUDCã¯ããïŒåŸè¿°ïŒä»ãã·ã³ãžã®ç§»æ€ ãµããŒãå€ïŒå€ãããïŒ ã€ãŸããå€åã®é åžã»å±é㯠20 幎以äžããã¡ã€ã«ãé ãããããªã
ãšããç¶æ ãç¶ããŠããããå®åã§ã®é åžæ¹æ³ã â å€åãã¡ã€ã«ïŒEUDC.TTE / EUDC.EUFïŒãäœã â¡ ã°ã«ãŒã ããªã·ãŒ / è³ç£ç®¡çããŒã« / ãã°ãªã³ ã¹ã¯ãªããã§é åž â¢ ã¬ãžã¹ããªã® EUDC ããŒãèšå® HKEY_CURRENT_USER\EUDC\<ã³ãŒãããŒãž> ⣠EnableEUDC ã§æå¹åããŸãã¯ãã°ãªã³ãçŽã â ããããããµããŒãå€ãã®éçšã§ãããã®éçšè² è·ã®é«ããããå€åã䜿ããªããæ¹åãžé²ãçç±ã§ããã
JISæå挢åã³ãŒã ã§è§Šãã IVS ãªãã
ãã©ã³ããå ¥ããã ãïŒå€åã®ç»é²äœæ¥ãäžèŠïŒã§æžãã
-
å€åãšãã£ã¿ã䜿çšããŠå€åãäœæããæ¹æ³
http://support.microsoft.com/kb/881004/ja -
Windows ã§å€åãšãã£ã¿ã䜿çšããŠå€åãäœæããæ¹æ³
http://support.microsoft.com/kb/416747/ja-
äœæããå€åã¯ç»é²ãããã©ã³ãããšã« *.TTEã*.EUF ãã¡ã€ã«ã«æ ŒçŽãããŸãã
-
å€åäœææã« [ãã¹ãŠã®ãã©ã³ãã«ãªã³ã¯ãã] ãéžæããå Žåã«ã¯ã
EUDC.TTEãããã³ EUDC.EUF ãšããååã®ãã¡ã€ã«ã«æ ŒçŽãããŸãã -
å€åäœææã« [æå®ãããã©ã³ãã«ãªã³ã¯ãã] ãéžæããå Žåã«ã¯ã
ä»»æã®ãã¡ã€ã«åã§æ¡åŒµåã .TTEã.EUF ã®åãã¡ã€ã«ã«æ ŒçŽãããŸãã -
æ¡åŒµåã .TTE ã®ãã¡ã€ã«ã¯å€åãã©ã³ãã®ããŒã¿ãæ ŒçŽããã
.EUF ã®ãã¡ã€ã«ã¯å€åãã©ã³ãã®ç®¡çã«äœ¿çšãããŸãã -
泚æ:äœæããå€åãä»ã®ãã·ã³ã§äœ¿çšããããšã¯åäœä¿èšŒå€ãšãªã£ãŠãããŸãã
åäžãã·ã³å ã§ã®ã¿ã䜿çšãã ããã
-
-
å€åãå ¥åãã
https://support.microsoft.com/ja-jp/office/ -
IME 2003 ãŸã㯠IME 2002 ã§å€åãå ¥åããæ¹æ³
http://support.microsoft.com/kb/881005/ja
è£è¶³ïŒããã¹ãŠã®ãã©ã³ãã«ãªã³ã¯ããšãæå®ãããã©ã³ãã«ãªã³ã¯ãïŒ: ãã®
éžæã¯ãéçšã®æ§è³ªã倧ããå€ããããè£è¶³ããŠããã
æ¹åŒ æ ŒçŽå æ§è³ª ãã¹ãŠã®ãã©ã³ãã«ãªã³ã¯ EUDC.TTE/EUDC.EUFã©ã®ãã©ã³ãã§ãåãå圢ã§åºãã管çãç°¡å æå®ãããã©ã³ãã«ãªã³ã¯ ä»»æã®ååã® .TTE/.EUFãã©ã³ãããšã«å圢ãäœããïŒææïŒãŽã·ãã¯ïŒ ãæ ŒçŽå Žæã %WINDIR%\Fonts\EUDC.TTE ïŒã·ã¹ãã ïŒ HKEY_CURRENT_USER\EUDC\932 ïŒã¬ãžã¹ããªããŠãŒã¶ãŒããšïŒ â ããŠãŒã¶ãŒããšã®èšå®ã§ãããç¹ãæéèŠ ïŒ å¥ã®ãŠãŒã¶ãŒã§ãã°ãªã³ãããšå€åãèŠããªã ïŒ ãµãŒãã¹ ã¢ã«ãŠã³ãã§ã¯èŠããªã â åŸè¿°ã® Session 0 åé¡åž³ç¥šãæ±ãã·ã¹ãã ã§ã¯ãæå®ãããã©ã³ãã«ãªã³ã¯ããå¿ èŠã«ãªãã
ææã§å°å·ãã垳祚ã«ããŽã·ãã¯ã®å€åãæ··ãããšç®ç«ã€ããã§ããã
ãã ãããã©ã³ãã®æ°ã ãå€åãäœãããšã«ãªããäœæå·¥æ°ãå¢ããã
-
ãŠãŒã¶ãŒå®çŸ©å€å â éä¿¡çšèªã®åºç€ç¥è
https://www.wdic.org/w/WDIC/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%AE%9A%E7%BE%A9%E5%A4%96%E5%AD%97Unicode ç°å¢ã§ã¯ã次ã®é åããŠãŒã¶ãŒå®çŸ©å€åé åãšãããŠããã
- BMP é å U+E000âU+F8FF (6,400å)
- 15é¢ U+F0000âU+FFFFD (65,534å)
- 16é¢ U+100000âU+10FFFD (65,534å)
ã·ãã JIS ã® 0xF040ïœ0xF9FC ã¯ãU+E000ïœU+E757 ã«å²ãåœãŠãããŠããã
Windows ã®å€åãšãã£ã¿ã¯ãæåã»ããã Unicode ã«ãããš U+E000ïœU+F8FF ãŸã§ã
å©çšã§ããããU+E758ïœU+F8FF ã¯ã·ãã JIS ã§ã¯è¡šçŸã§ããªããã Unicode å°çšãšãªãã
IME ããããããïŒã€ã®å€åã« UnicodeãUTF-8ãã·ãã JIS ã®
ïŒã€ã®æåã³ãŒãã衚瀺ãããŠããäºã確èªã§ããŸãã
ãã®ããïŒãã©ãããã©ãŒã ã«äŸåãããããããŸããããïŒ
äžèšïŒã€ã®ã³ãŒãéã§ã®ãšã³ã³ãŒãã£ã³ã°ã¯å¯èœãšèããŸãã
ïŒç¢ºèªã®ããã«ã¯ãšã³ã³ãŒãã£ã³ã°ã«ãã倿ã®å¯éæ§ããã¹ããšãããšè¯ãã

è£è¶³ïŒåæã®ãå¯éæ§ããã¹ãããããšããææ¡ã¯æ£ããïŒ: ãã®
äžæã¯æ¬ããŒãžã§æãå®åçãªææã§ã
æåã®ãã§ãã¯æ¹åŒ ã®å¯éãã§ãã¯ãšåãçºæ³ã§ãããEncoding.RegisterProvider(CodePagesEncodingProvider.Instance); var cp932 = Encoding.GetEncoding(932); string gaiji = "\uE000"; // å€åã® 1 åç® byte[] b = cp932.GetBytes(gaiji); // F0 40 string back = cp932.GetString(b); // U+E000ïŒæ»ãïŒ Console.WriteLine(back == gaiji); // True â å¯é string gaiji2 = "\uE758"; // Shift_JIS ã«å¯Ÿå¿ããªãç¯å² Console.WriteLine(cp932.GetString(cp932.GetBytes(gaiji2)) == gaiji2); // False â 倱ããããU+E000ïœU+E757 ã¯å¯éãU+E758 以éã¯äžå¯éãââ
ãšããå¢çããã³ãŒãã§ç¢ºèªã§ãããæ³šæãã¹ãç¹:
ã»å¯éã§ããããšãšããåãå圢ãåºãããšãã¯å¥åé¡ â ã³ãŒãã¯éã£ãŠããçžæã®ç°å¢ã«å€åãã¡ã€ã«ããªããã° â¡ ã«ãªã â ããšã³ã³ãŒãã§ãããïŒãçžæã«äŒãããã§ã¯ãªã
EnableEUDC 颿°ã䜿çšããã
-
SDK32:å€åãã¡ã€ã«ãæŽæ°ããæ¹æ³
http://support.microsoft.com/kb/413278/jaå€åãã¡ã€ã«ãæŽæ°ãããšãã«ã¯ããã¡ã€ã«ãã³ããŒããåã«ã
EnableEUDC 颿°ã®åŒæ°ã« FALSE ãæå®ããŠã·ã¹ãã ã®å€åã®äœ¿çšãäžæåæ¢ãã
ã³ããŒçµäºåŸãEnableEUDC 颿°ã®åŒæ°ã« TRUE ãæå®ããŠå€åã®äœ¿çšãåéããŸãã
ãã®æäœãè¡ãªããªããšãæ¢ã«åãååã®ãã¡ã€ã«ãã·ã¹ãã ã«ç»é²ãããŠããå Žåã¯ã
ãã¡ã€ã«ã®ã³ããŒã倱æããåãååã®ãã¡ã€ã«ããªãå Žåã§ãã
å€åãã¡ã€ã«ã¯ãå³åº§ã«æŽæ°ãããŸããã
EnableEUDC ã¯ãGDI32.LIB ã«ç»é²ãããŠããªãããã
å®è¡æã«é¢æ°ã®ã¢ãã¬ã¹ãååŸããå¿ èŠããããŸãã -
EnableEUDC function
https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-enableeudcThis function enables or disables support for end-user-defined characters (EUDC).
ãã®æ©èœã¯ãå€åã®ãµããŒãããæå¹ãã»ãç¡å¹ãã«ããŸããCommunity AdditionsïŒã³ãã¥ããã£ãŒè¿œå åïŒ
Support for EUDC needs to be enabled and is a per-session setting.
å€åã®ãµããŒãã¯ãæå¹ãã§ããå¿ èŠããããã»ãã·ã§ã³æ¯ã®ã»ããã£ã³ã°ã§ãã
è£è¶³ïŒ
EnableEUDCã®åŒã³åºãæ¹ïŒ: åæãææããéãã
GDI32.LIBã«ãšã¯ã¹ããŒããããŠããªãããã
å®è¡æã«é¢æ°ã®ã¢ãã¬ã¹ãååŸããå¿ èŠãããã// C# ããåŒã¶å ŽåïŒP/Invoke ã§ã¯ãªãåçã«è§£æ±ºããïŒ [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)] static extern IntPtr GetModuleHandle(string name); [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)] static extern IntPtr GetProcAddress(IntPtr hModule, string procName); delegate bool EnableEUDCDelegate(bool enable); static bool EnableEudc(bool enable) { var gdi32 = GetModuleHandle("gdi32.dll"); var addr = GetProcAddress(gdi32, "EnableEUDC"); if (addr == IntPtr.Zero) return false; var fn = Marshal.GetDelegateForFunctionPointer<EnableEUDCDelegate>(addr); return fn(enable); }泚æç¹:
ã»ãææžåãããŠããªã颿°ãã§ããïŒLearn ã«ã¯é ç®ããããã 詳现ãªä»æ§ã»ä¿èšŒã¯ä¹ããïŒ ã»åŸè¿°ã®éãã倱æããããšãããã ã»GDIïŒWin32 ã®æç»ïŒã«å¯Ÿããèšå®ã§ããã WPF / DirectWrite ç³»ã«ã¯å¹ããªãå Žåããã âæåŸã®ç¹ãçŸåšã¯éèŠã§ããã
WPFãWinUIããã©ãŠã¶ãæè¿ã® PDF ã©ã€ãã©ãªã¯
GDI ã§ã¯ãªã DirectWrite ã§æç»ããããã
EnableEUDCãåŒãã§ãå€åãåºãªãããšãããã
-
å€åãã»ãã®ããœã³ã³ã«ç§»ããã - ããžã¿ã« - æ¥çµãã¬ã³ãã£ããã
ïŒãªã³ã¯åãïŒhttp://trendy.nikkeibp.co.jp/article/qa/os/20030131/103639/ïŒWindows ã¯ããããã°ã©ã ãã¡ãã¥ãŒâãã¢ã¯ã»ãµãªãã«ãããå€åãšãã£ã¿ãã䜿ãããšã§ã
ãŠãŒã¶ãŒå¥œã¿ã®ååœ¢ãæ±ãããå€åããäœæã§ããŸãããããçŸåšããã€ã¯ããœããã®æ¹éã§ã¯ã
ãäœæããå€åãä»ã®ãã·ã³ã§äœ¿çšããããšã¯åäœä¿èšŒå€ãã§ãã
ïŒWindows ã«ã¯å€åãäœæããããã®ãå€åãšãã£ã¿ãã®æ©èœãããã
äœæãããå€å㯠EUDC ãªã©ã®ååãä»ãããã¡ã€ã«ã«ä¿åãããïŒ
ãã ãç·šééšã§è©Šãããšãããå€åãç§»ããå ŽåããããŸããã
ãåèã®ããã«ããã®æ¹æ³ã以äžã«èšè¿°ããŸãã
ãã ããããã§å€åãç§»ãããšã¯éããŸããã
ã·ã¹ãã ã«äžå ·åãåºãªãä¿èšŒããããŸããã詊ãå Žåã¯èªå·±è²¬ä»»ãšãªããŸãã -
å€åãã»ãã®ããœã³ã³ã«ç§»ãæ¹æ³ã¯ïŒ
ïŒãªã³ã¯åãïŒhttp://pc.nikkeibp.co.jp/article/NPC/20060329/233790/ïŒãã€ã¯ããœããã§ã¯ãå€åãã¡ã€ã«ãä»ã®ããœã³ã³ã§äœ¿çšããããšã¯ãµããŒã察象å€ãšããŠããŸãã
以äžã®æé ã§å€åãã»ãã®ããœã³ã³ã«ç§»ãããšãã§ããŸããããããŸã§ãèªå·±è²¬ä»»ãšãªããŸãã -
å€åã³ããŒå±ãã Version 2.5
http://www.eastvalley.or.jp/cpeudc/ãã®ãœããã¯å€åãã¡ã€ã«ãç°ãªã OS ã§äœ¿çšã§ããããšãä¿èšŒãããã®ã§ã¯ãããŸããã
ãŸããå€åãä»ã® PC ã§äœ¿çšããããšããç°ãªã OS éã§å ±æããããšã¯ã
ãã€ã¯ããœããã®ãµããŒãå€ã®ããšã§ãã®ã§ããããŸã§ãèªå·±è²¬ä»»ã®ç¯å²ã§ã䜿ããã ããã
Windows ã§ãã©ã³ããã€ã³ã¹ããŒã«ãŸãã¯åé€ããæ¹æ³
https://support.microsoft.com/ja-jp/windows/
Windows 2000-XPã®Font Linkæ©èœ(Font Linking)ã®ç޹ä»
ïŒãªã³ã¯åãïŒhttp://blue.ribbon.to/~akene/fontlink.htmïŒ
ãã©ã³ãã®çµã¿æ¿ããã§ãã FontLink æ©èœ(åèªã¯ ability) ã¯ã
ã©ãããè±èªç Windows CE (iPAQ ãªã©) ã®æ¥æ¬èªåããŒãžã§ãã
玹ä»ãããŠãããªã®ã§ã玹ä»ããŒãžãäœã£ãŠã¿ãŸããã
Accessãããã-[åèµ·åããªãã§å€åãèšå®ãã]
http://www.sanryu.net/acc/tips/tips161.htm
'MS P ãŽã·ãã¯ã«ãã©ã³ãããªã³ã¯ãã
è£è¶³ïŒFont Link ã¯çŸåšã䜿ãããŠããïŒ: ãã©ã³ã ãªã³ã¯ã¯ã
ãããã©ã³ãã«åããªãå Žåã«ãå¥ã®ãã©ã³ãã§è£ãä»çµã¿ã§ãããHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink "Tahoma" = "MSGOTHIC.TTC,MS UI Gothic" â è±åãã©ã³ãã«æ¥æ¬èªããªãã®ã§ãMS ãŽã·ãã¯ã§è£ãå€åã§ã®äœ¿ãéã¯ã
ãç®çã ä»»æã®ãã©ã³ãïŒæžžææãªã©ïŒã§å€åã衚瀺ãããã ãæ¹æ³ã SystemLink ã« EUDC.TTE ã远å ãã ã广ã å€åãšãã£ã¿ã§ããã¹ãŠã®ãã©ã³ãã«ãªã³ã¯ãããªããŠãã ç¹å®ãã©ã³ãã§å€åãåºãããã«ãªãçŸåšã®æ³šæç¹:
ã»ã¬ãžã¹ããªå€æŽãªã®ã§ããã°ã«ãŒã ããªã·ãŒã§ã®å±éãèŠãã ã»DirectWrite ããŒã¹ã®ã¢ããªã§ã¯ããã©ã³ã ãã©ãŒã«ããã¯ã奿©æ§ã â WPF/WinUI ã§ã¯å¹ããªãå Žåããã ã»Web ãã©ãŠã¶ã§ã¯å¹ããªãïŒCSS ã® font-family ã§èªåã§äžŠã¹ãïŒWeb ã§ã®ä»£æ¿ã¯ CSS ã®ãã©ã³ã ãã©ãŒã«ããã¯ã§ããã
body { font-family: "æžžææ", "MS ææ", "MyGaijiFont", serif; } â å€åçšã® Web ãã©ã³ã
Session 0 ã®åé¡
ïŒVista 以éã®ãµãŒãã¹ã§ã®å€åå©çšïŒ
-
ãªãWindowsã®ãã°ãªã³ããéã«Ctrl + Alt + Delãå¿ èŠïŒ - æ°æ¥ã æ€äœæå
https://kkamegawa.hatenablog.jp/entry/20100308/p1ããã²ãšã€ãæå€ãšèŠèœãšãããŸãããå€å(EUDC)ããããŸãã
å€å㯠Windows ã®ãã°ãªã³ãŠãŒã¶ãŒããšã«èšå®ãããŸãã
ãããã£ãŠã誰ãããã°ãªã³ããŠããªããšå€åã䜿ããªãããšããçŸè±¡ãçºçããŸãã
ãããæãããã® API ã§ãã EnableEUDC ãªããŠã®ãçšæãããŠããŸããã»ã»ã»
ãããã£ãŠããµãŒããŒã§åž³ç¥šãäœããããªå ŽåããããŠå€åã䜿ããããªã·ã¹ãã ã§ã¯
æ¥å€èªåãã°ãªã³ããããšããªããšãã»ã»ã»ãã»ã»ã»
ããã Windows Server 2008 ã§ãµãŒãã¹ïŒSession 0ïŒãš
ãŠãŒã¶ãŒã»ãã·ã§ã³ïŒSession 1 以éïŒãåé¢ãããŠããŸã£ãã®ã§ã
ãµãŒãã¹ã§å€åãåºãããå Žåã¯åè¿°ã® EnableEUDC() ãåŒã³åºãããšã«ãªããŸãã
ãã ããã® APIããããã倱æããã®ã§ãããªãã©ãã©ãã§ãã -
ã¡ã¢ã[Tips][Windows7]XPã¢ãŒãã§ãã·ãŒã ã¬ã¹ã¢ãŒããå©çšãããšå€åã衚瀺ã§ããªã
ïŒãªã³ã¯åãïŒhttp://d.hatena.ne.jp/nagasama/?of=18ïŒ-
ã·ãŒã ã¬ã¹ã¢ãŒãã§ã¢ããªã±ãŒã·ã§ã³ãåäœããããšå€åã衚瀺ãããªãã¿ããã
-
XP ã¢ãŒãã®ã·ãŒã ã¬ã¹ã¢ãŒãã¯ãRemoteApp ãšåãæè¡ã¿ããã ããã
RemoteApp ã§ãåãããšããããã®ã§ã¯ãªããïŒ
ãšæã£ãŠè©ŠããŠã¿ããšãã£ã±ãå€åã衚瀺ãããªãã -
ãªãã»ã©ãããŠãŒã¶ãŒããã°ãªã³ããŠããªããšäœ¿ããªããããããŠã
EnableEUDC API ãåŒã³åºããã°ããã®ãïŒïŒãšããããšã§ãKB413278 ã«
ä¹ã£ãŠãããµã³ãã«ããã®ãŸãŸäœ¿ã£ãŠãå®è¡ãã¡ã€ã«ãäœã£ãŠã¿ãã
åŒã³åºããŠã¿ããšã確ãã«å€åããããªã䜿ããããã«ãªã£ãã -
Vista 以éã®å Žåã¯ãSession 0 ã®åé¢ãããµãŒãã¹ã§å€åãå©çšããå Žåã¯ã
åæ§ã«è¡šç€ºãããªããããEnableEUDC API ãåŒã³åºããªããã°ãªããªãã -
ãªãå€åãšãã£ã¿ãèµ·åããªããšXP Modeã§å€åã衚瀺ãããªãïŒ
https://kkamegawa.hatenablog.jp/entry/20091123/p1- Windows 7 ã® XP Mode ã§å€åã䜿ãããå Žå: äžã®äžã¯äžæè°ãªããšã ãã
http://snow-white.cocolog-nifty.com/first/2009/11/windows-7-xp-mo.html - Windows 7 XPã¢ãŒãããã®ïŒãXPã¢ãŒãã§å€åãå©çšåºæ¥ãªãã
ã- ã¿ããã®ãªã«ããªãŒãããåã« - Yahoo!ããã°
ïŒãªã³ã¯åãïŒYahoo!ããã°ã¯ãµãŒãã¹çµäºïŒ
- Windows 7 ã® XP Mode ã§å€åã䜿ãããå Žå: äžã®äžã¯äžæè°ãªããšã ãã
ããã§ã¯ãEnableEUDC API ãåŒã³åºãæ¹æ³ãææ¡ãããŠãããã
以äžããªã³ã¯å ã¯å€åãšãã£ã¿ãèµ·åããæ¹æ³ã§ä»£æ¿ãããŠããã -
-
EnableEUDC function
https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-enableeudcCommunity AdditionsïŒã³ãã¥ããã£ãŒè¿œå åïŒ
Support for EUDC needs to be enabled and is a per-session setting.
It can be turned on or off using the EnableEUDC Windows API.
It is enabled by default by userinit.exe, so usually, nothing needs to be done
for standard Windows apps. However, because of session 0 isolation,
services running on Windows Vista or later need to call EnableEUDC explicitly
otherwise EUDC support will be disabled.å€åã®ãµããŒãã¯ïŒãã°ãªã³ïŒã»ãã·ã§ã³æ¯ã«ãæå¹ãã§ããå¿ èŠããããŸãã
ãã㯠EnableEUDC Win32API ã䜿çšã㊠ONã»OFF ã§ããŸãã
éåžžãuserinit.exe ã«ãã ON ã«èšå®ããããããäœãè¡ãå¿ èŠã¯ãããŸãããã
Windows Vista 以éã§åäœãããµãŒãã¹ã¯ã
Session 0 éé¢ã®ããã«ã
EnableEUDC ãæç€ºçã«åŒã°ãªããã°ãå€åã®ãµããŒãã¯ç¡å¹ã«ãªããŸãã-
userinit.exe ã«ã€ããŠã¯ããã¡ããåèã«ãªããŸãã
-
ïŒé±éã§åŠã¶ITåºç€ã®åºç€
ã- WindowsãŠãŒã¶ãŒã®ããã®ã¯ã³ãã€ã³ãã»ã¬ãã¹ã³ã第64åïŒITpro
ïŒãªã³ã¯åãïŒhttp://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20050602/162002/ïŒãã°ãªã³çŽåŸã«èµ·åããããã»ã¹ã§ã
ãã°ãªã³ã»ã¹ã¯ãªãããã·ã§ã«ãå®è¡ãã
åçš®ãŠãŒã¶ãŒç°å¢ãåæåããæ©èœãæäŸããŠããŸãã
-
-
è£è¶³ïŒãã®ç¯ãæ¬ããŒãžã®æ žå¿ãçŸåšãæå¹ïŒ: Session 0 åé¢ã¯
çŸè¡ã® Windows ã«ããã®ãŸãŸæ®ã£ãŠããããã
ãã®åé¡ã¯ä»ãèµ·ãããæ§é ãæŽçãããããªããµãŒãã¹ããå€åãèŠããªãã®ãã â å€åã®èšå®ã¯ãHKEY_CURRENT_USERãã«ãã â ãŠãŒã¶ãŒããšã®èšå® â¡ éåžžãã°ãªã³æãuserinit.exe ã EnableEUDC(TRUE) ãåŒã¶ â 察話ãŠãŒã¶ãŒã®ã»ãã·ã§ã³ã§ã¯èªåçã«æå¹ã«ãªã ⢠Windows ãµãŒãã¹ã¯ãSession 0ãã§åãïŒVista 以éïŒ â userinit.exe ãåããªã â EnableEUDC ãåŒã°ããªã â å€åãç¡å¹ã®ãŸãŸ ⣠ããã«ããµãŒãã¹ ã¢ã«ãŠã³ãïŒLocalSystem çïŒã® HKEY_CURRENT_USER ã«ã¯å€åã®èšå®èªäœããªãçŸåšã®å¯ŸçïŒåæã®è·¯ç·ãèžãŸããŠæŽçïŒ:
察ç å 容 è©äŸ¡ EnableEUDC(TRUE)ãåŒã¶ãµãŒãã¹èµ·åæã«æç€ºçã«åŒã¶ åæã®éãããã ã倱æãåŸã ãµãŒãã¹ ã¢ã«ãŠã³ãã®ã¬ãžã¹ããªã«å€åãç»é² HKEY_USERS\<SID>\EUDC\932ã«èšå®ç¢ºå®æ§ãé«ããéçšãç ©é å°çšãŠãŒã¶ãŒã§å®è¡ãã ãµãŒãã¹ãéåžžãŠãŒã¶ãŒãšããŠå®è¡ å€åã®èšå®ãåŒãã å€åã䜿ããªã IVS / å°çšãã©ã³ãã«çœ®ãæãã æ¬çã®è§£ â 垳祚ãšã³ãžã³ãåé¢ åž³ç¥šãµãŒãïŒåž³ç¥šåºåïŒã«ä»»ãã 責åãæŽçããã åãåé¡ãèµ·ããå ŽæïŒåæã XP Mode / RemoteApp ã§èгå¯ããéãïŒ:
ã»Windows ãµãŒãã¹ïŒããããåžžé§åŠçïŒ ã»IIS ã®ã¢ããªã±ãŒã·ã§ã³ ããŒã« â ãWeb ã¢ããªã§åž³ç¥šãäœãå Žåã ã»ã¿ã¹ã¯ ã¹ã±ãžã¥ãŒã©ïŒããŠãŒã¶ãŒããã°ãªã³ããŠãããã©ããã« ãããããå®è¡ãããèšå®ã®å ŽåïŒ ã»RemoteApp / ãªã¢ãŒã ãã¹ã¯ããã ã»ãã·ã§ã³ ã»ã³ã³ããïŒããããå€åãã¡ã€ã«ãå ¥ããå¿ èŠãããïŒIIS ã§åž³ç¥š PDF ãçæããã·ã¹ãã ã¯ããã®åé¡ãé«ç¢ºçã§èžãã
éçºç°å¢ïŒãã¹ã¯ãããã§åããïŒã§ã¯åºãã®ã«ã
æ¬çªïŒIIS é äžïŒã§ã¯å€åã â¡ ã«ãªããšãã圢ã§è¡šé¢åãããããããã倱æãããïŒåæã®åŒçšïŒã«ã€ããŠã®è£è¶³:
EnableEUDCã¯ã»ãã·ã§ã³ããšã®èšå®ã§ããããã
åŒã¶ã¿ã€ãã³ã°ãšãåŒã¶ã¹ã¬ããã®ã»ãã·ã§ã³ã圱é¿ããã
ãŸããGDI ã®æç»ã«ããå¹ããªãããã
DirectWrite ããŒã¹ã®ã¬ã³ãã©ãŒã§ã¯å¹æããªãã
ç¢ºå®æ§ãæ±ãããªããã¬ãžã¹ããªãçŽæ¥èšå®ããæ¹åŒã®æ¹ãå ãã
Q:Adobe Reader ã§ Windows å€å(EUDC.tte)6400 æååã衚瀺å¯èœãã©ããïŒ
A:PDF åããããŒã«ããµããŒãããŠããããããªãããéµã§ããããã§ãã
-
PDF ã«ãããå€åã®ãµããŒãã«ã€ããŠ
ïŒãªã³ã¯åãïŒhttp://kb2.adobe.com/jp/cps/233/233284.htmlïŒ -
PDF äœææã«æ¥æ¬èªãã©ã³ããåãèŸŒãæ¹æ³ïŒWindows ç Acrobat 7.0-8ïŒ
ïŒãªã³ã¯åãïŒhttp://kb2.adobe.com/jp/cps/225/225564.htmlïŒ
è£è¶³ïŒåæã®çµè«ã¯çŸåšãæ£ããïŒ: ãPDF åããããŒã«ã
ãµããŒãããŠããããéµãââãã®èŠç«ãŠã¯ãã®ãŸãŸéçšããããPDF ã«å€åãåºãããã®æ¡ä»¶ã â ãã©ã³ããåã蟌ãŸããããšïŒEmbedïŒ â åã蟌ãŸãªããšãé²èЧåŽã®ç°å¢ã«å€åããªããã°åºãªã â¡ PDF çæããŒã«ããå€åãã©ã³ãïŒEUDC.TTEïŒãèªèããããšã â GDI çµç±ã§å°å·ããããŒã«ãªãéãããšãå€ã â ç¬èªã«ãã©ã³ããèªãããŒã«ã¯ãæç€ºçãªæå®ãèŠã ⢠ã©ã€ã»ã³ã¹äžãåã蟌ã¿ãèš±å¯ãããŠããããš â åçšãã©ã³ãã¯åã蟌ã¿äžå¯ã®ãã®ããã â èªäœã®å€åã¯åé¡ãªãçŸåšã®ç¶æ³:
çææ¹åŒ å€åã®æ±ã ä»®æ³ããªã³ã¿ïŒMicrosoft Print to PDF çïŒ GDI çµç±ãªã®ã§éããããããã ããµãŒãã¹ããã¯åè¿°ã®åé¡ Word / Excel ã® PDF åºå éãïŒOffice ã GDI/DirectWrite ã§æç»ïŒ QuestPDF / PDFsharp ãã©ã³ã ãã¡ã€ã«ãæç€ºçã«æå®ããã°éã Chromium ç³»ïŒPlaywright / PuppeteerïŒ CSS ã§å€åãã©ã³ããæå®ããã°éã 垳祚補åïŒActiveReports çïŒ è£œååŽã®å€åå¯Ÿå¿æ©èœã䜿ãïŒå補åã«ããïŒ Linux ã³ã³ããã§ã®çæ å€åãã¡ã€ã«ãé 眮ãããã©ã³ããšããŠç»é²ããå¿ èŠ // QuestPDF ã§å€åãã©ã³ããæç€ºçã«ç»é²ããäŸ FontManager.RegisterFont(File.OpenRead(@"C:\Windows\Fonts\EUDC.TTE")); // 䜿ãåŽ page.DefaultTextStyle(x => x.FontFamily("MS ææ", "EUDC"));ã¯ã©ãŠãïŒ Linux ãžç§»è¡ããéã«æãè©°ãŸãã®ãããã§ããã
å€å㯠Windows ã®ããŒã«ã«èšå®ã«åŒ·ãäŸåããããã
ã³ã³ããåã»SaaS åãšçžæ§ãæªãã
ç§»è¡ãæ©ã« IVS ãžå¯ãã倿ãçŸå®çã§ãã
ïŒåž³ç¥šåºåïŒã
- å€åç»é²ã§äžéšã®ç§çšé åã«ç»é²ããå€åãæ£ãã衚瀺ãããªã
http://support.microsoft.com/kb/418818/JA - 詳现ãªå°å·æ©èœãæå¹ã«ããŠå°å·ãããšå€åãå°å·ãããªãããšããã
http://support.microsoft.com/kb/2550834/ja
è£è¶³ïŒå€åããããããããã®ç§»è¡æé ïŒ: æ¢åã·ã¹ãã ã®å€åã
æžãããŠããéã®ãå®åçãªé²ãæ¹ããŸãšãããâ ãæ£åžãã å®éã«äœ¿ãããŠããå€åãæ°ãã SELECT * FROM 顧客 WHERE æ°å LIKE N'%[' + NCHAR(0xE000) + '-' + NCHAR(0xE757) + ']%' â ã6,400 åç»é²ããŠããããå®é㯠30 åãã䜿ã£ãŠããªãã ãšããã±ãŒã¹ãå€ã â¡ ãåé¡ã åå€åã以äžã«æ¯ãåãã (a) Unicode ã«ãæ£èŠã®æåãšããŠååšããã â 眮æã§ãã â 倧å (b) IVS ã§è¡šããç°äœå â IVS ãž (c) Unicode ã«ãªã â å€åãæ®ã ⢠ãå€æè¡šãäœãã å€åã³ãŒã â 眮æåŸã®æå æ¥åéšéã®ã¬ãã¥ãŒãåããïŒæ°åã¯ç¹ã«æ éã«ïŒ ⣠ãããŒã¿å€æã å€æè¡šã«åŸã£ãŠäžæ¬æŽæ° 倿ååŸãå¿ ãä¿åããïŒåãæ»ãã®ããïŒ â€ ãæ®ãã®å€åã IVS 察å¿ãã©ã³ã + å€åãã©ã³ãã§éçšâ¡ ã® (a) ã倧åãå ããã®ã宿 ã§ããã
å€åãäœãããåœæïŒWindows 95ïœXP æïŒã¯
Unicode ã® CJK æ¡åŒµãæªæŽåã ã£ãããã
ä»ãªãæ£èŠã®æåã§è¡šãããã®ãå€ãå€åã«ãããŠãããåèã«ãªã察å¿è¡š:
ã»MJæåæ å ±äžèŠ§è¡šïŒIPAïŒâŠ çŽ 6 äžåãæžç±çµ±äžæåãšã®å¯Ÿå¿ãã ã»äœåºãããçµ±äžæå ã»Adobe-Japan1 ã® IVS ã³ã¬ã¯ã·ã§ã³
- EnableEUDC function
https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-enableeudc - ãµãŒãã¹ã§ã® Session 0 åé¢ã®åœ±é¿
https://learn.microsoft.com/ja-jp/windows/win32/services/interactive-services - Unicode ãšæåã»ããã®äœ¿çš
https://learn.microsoft.com/ja-jp/windows/win32/intl/unicode
- MJæåæ
å ±äžèŠ§è¡šïŒæåæ
å ±åºç€æŽåäºæ¥ / IPAïŒ
https://moji.or.jp/mojikiban/mjlist/
Tags: ç§»è¡, .NETéçº, åœéå察å¿, æåã³ãŒã