
[[WindowsCodePage]] の実装である [[NLS]] ファイルについて。

[23] Windows で実際に CP の情報が入っているのは、
C:\Windows\System(32) にある *.nls というファイルです。
(この名前は [[OS]] によって違いますが、いずれも CP
番号が入っています。)

但しそこにあるのは Windows がそれ自体の変換表を持ってる CP
だけで、他の CP を加工したものとして実装しているもの
([[ISO-2022-JP]] とか) にはこのファイルはありません。

[2] CP の NLS は Windows 9x では ''CP_*.NLS'' ですが、
[[WindowsNT]] では ''c_*.nls'' で名前が違います。

- [54] [WEAK[2003-09-10 16:10:09 +00:00]] ''[[c_20290.nls]]'': 
- [58] [WEAK[2003-09-19 15:25:15 +00:00]] ''[[Mr.Anonymous]]'': c_21027.nls
- [65] [WEAK[2003-12-01 12:55:55 +00:00]] ''[[Kevin]]'': Vickers
- [67] [WEAK[2003-12-03 21:26:50 +00:00]] ''[[名無しさん]]'': c_1361.nls

* 日本語 Windows 95 OSR2.1

[25] [[OSR]]2 には Default で [[IE]] 3.02
が入っていましたが、 IE3 は default では International pack
なしですのであまり関係ないかもしれません。

[39] [[アプリケーションの追加と削除]]で多国語サポートを追加したら、
5つ増えました。

[40] 時刻は全部、 OSR2 を package した時刻なんだと思います。

[PRE[
Windows/4.00.1111 ( B) (Windows 95 OSR2) (486) MSIE/4.70.1155
CP_437   NLS         9,522  96-09-05  11:11 CP_437.NLS
CP_850   NLS         9,826  96-09-05  11:11 CP_850.NLS
CP_932   NLS       408,546  96-09-05  11:11 CP_932.NLS
CP_1252  NLS         9,194  96-09-05  11:11 CP_1252.NLS
CP_20866 NLS         6,824  96-09-05  11:11 CP_20866.NLS
CP_28592 NLS         5,416  96-09-05  11:11 CP_28592.NLS
CP_28593 NLS         5,448  96-09-05  11:11 CP_28593.NLS
CP_28594 NLS         5,448  96-09-05  11:11 CP_28594.NLS
CP_28597 NLS         5,320  96-09-05  11:11 CP_28597.NLS
LOCALE   NLS       128,520  96-09-05  11:11 LOCALE.NLS
UNICODE  NLS        34,676  96-09-05  11:11 UNICODE.NLS
CP_1250  NLS         9,124  96-09-05  11:11 CP_1250.NLS
CP_1251  NLS         6,868  96-09-05  11:11 CP_1251.NLS
CP_1253  NLS         6,856  96-09-05  11:11 CP_1253.NLS
CP_1254  NLS         7,708  96-09-05  11:11 CP_1254.NLS
CP_1257  NLS         5,960  96-09-05  11:11 CP_1257.NLS
]PRE]


* Windows 98 + Internet Explorer 5.5

[26] [[IE]]5.5 が入っていて生 Win98 ではないです。
WinMe (>>21) と比較すると、 CP_20127.NLS
がこちらにはありません。また、 CP437 と CP850
がなぜか >>21 より4日新しい版です。

(なお、 >>21 との日付の微妙な差は [[dir]]
した環境の時差のせいみたいです。)

[27] >>26 の差異は実際にはないみたいです。
よって、 >>21 と >>26 に両者に存在する NLS の変換表はすべて一致しますた。

[28] >>25 (OSR2) と >>26 の比較の結果、
437, 850, 932 (See [[WindowsCodePage]>>30]), 28592, 28593, 28594, 28597
で fallback mapping (UCS -> CP) の (>>26 での) 追加がありました。
また、 1252 は [[WindowsCodePage]>>29] の通り変更が行われていました。

[PRE[
#; Windows/4.10.1998 (Windows 98) (586)
#; Internet Explorer: 5.50.4134
CP_1250  NLS         9,956  97-07-31   1:21 CP_1250.NLS
CP_1251  NLS         6,926  97-07-31   1:21 CP_1251.NLS
CP_1252  NLS         9,938  97-07-31   0:50 CP_1252.NLS
CP_1253  NLS         6,888  97-05-31   3:55 CP_1253.NLS
CP_1254  NLS         7,708  97-11-04   6:55 CP_1254.NLS
CP_1255  NLS         5,940  98-02-10  23:48 CP_1255.NLS
CP_1256  NLS         6,640  98-11-20   5:43 CP_1256.NLS
CP_1257  NLS         6,112  97-11-05  21:24 CP_1257.NLS
CP_1258  NLS         6,004  97-05-31   3:56 CP_1258.NLS
CP_1361  NLS       397,474  96-05-23   2:47 CP_1361.NLS
CP_20269 NLS         5,736  96-05-23   2:47 CP_20269.NLS
CP_20866 NLS         6,824  96-05-23   2:47 CP_20866.NLS
CP_21866 NLS         6,824  97-07-24  23:09 CP_21866.NLS
CP_28591 NLS         6,312  96-10-09   3:28 CP_28591.NLS
CP_28592 NLS         6,312  96-10-09   3:28 CP_28592.NLS
CP_28593 NLS         6,376  96-10-09   3:28 CP_28593.NLS
CP_28594 NLS         6,312  96-10-09   3:28 CP_28594.NLS
CP_28595 NLS         6,568  96-10-09   3:28 CP_28595.NLS
CP_28596 NLS         6,696  96-10-09   3:28 CP_28596.NLS
CP_28597 NLS         6,536  96-10-09   3:28 CP_28597.NLS
CP_28598 NLS         6,568  96-10-09   3:28 CP_28598.NLS
CP_28599 NLS         6,312  96-10-09   3:28 CP_28599.NLS
CP_28605 NLS         6,344  99-01-05  23:41 CP_28605.NLS
CP_437   NLS         8,648  98-06-12  20:01 CP_437.NLS
CP_850   NLS         8,648  98-06-12  20:01 CP_850.NLS
CP_874   NLS        10,504  98-08-26   2:44 CP_874.NLS
CP_932   NLS       407,586  97-09-03  22:35 CP_932.NLS
CP_936   NLS       537,858  97-09-12   9:52 CP_936.NLS
CP_949   NLS       529,478  96-07-03   2:25 CP_949.NLS
CP_950   NLS       486,850  96-10-25   4:58 CP_950.NLS
LOCALE   NLS       175,338  98-06-12  20:01 LOCALE.NLS
UNICODE  NLS        34,676  98-06-12  20:01 UNICODE.NLS
]PRE]


* Windows Me + Internet Explorer 5.5

[21]
[PRE[
C:\WINDOWS\SYSTEM> dir cp*.nls | sort
CP_1250  NLS         9,956  97-07-30  16:21 CP_1250.NLS
CP_1251  NLS         6,926  97-07-30  16:21 CP_1251.NLS
CP_1252  NLS         9,938  97-07-30  15:50 CP_1252.NLS
CP_1253  NLS         6,888  97-05-30  18:55 CP_1253.NLS
CP_1254  NLS         7,708  97-11-03  21:55 CP_1254.NLS
CP_1255  NLS         5,940  98-02-10  14:48 CP_1255.NLS
CP_1256  NLS         6,640  98-11-19  20:43 CP_1256.NLS
CP_1257  NLS         6,112  97-11-05  12:24 CP_1257.NLS
CP_1258  NLS         6,004  97-05-30  18:56 CP_1258.NLS
CP_1361  NLS       397,474  96-05-22  17:47 CP_1361.NLS
CP_20127 NLS         6,312  00-06-08  17:00 CP_20127.NLS
CP_20269 NLS         5,736  96-05-22  17:47 CP_20269.NLS
CP_20866 NLS         6,824  96-05-22  17:47 CP_20866.NLS
CP_21866 NLS         6,824  97-07-24  14:09 CP_21866.NLS
CP_28591 NLS         6,312  96-10-08  18:28 CP_28591.NLS
CP_28592 NLS         6,312  96-10-08  18:28 CP_28592.NLS
CP_28593 NLS         6,376  96-10-08  18:28 CP_28593.NLS
CP_28594 NLS         6,312  96-10-08  18:28 CP_28594.NLS
CP_28595 NLS         6,568  96-10-08  18:28 CP_28595.NLS
CP_28596 NLS         6,696  96-10-08  18:28 CP_28596.NLS
CP_28597 NLS         6,536  96-10-08  18:28 CP_28597.NLS
CP_28598 NLS         6,568  96-10-08  18:28 CP_28598.NLS
CP_28599 NLS         6,312  96-10-08  18:28 CP_28599.NLS
CP_28605 NLS         6,344  99-01-05  14:41 CP_28605.NLS
CP_437   NLS         8,648  00-06-08  17:00 CP_437.NLS
CP_850   NLS         8,648  00-06-08  17:00 CP_850.NLS
CP_874   NLS        10,504  98-08-25  17:44 CP_874.NLS
CP_932   NLS       407,586  97-09-03  13:35 CP_932.NLS
CP_936   NLS       537,858  97-09-12   0:52 CP_936.NLS
CP_949   NLS       529,478  96-07-02  17:25 CP_949.NLS
CP_950   NLS       486,850  96-10-24  19:58 CP_950.NLS
]PRE]


* Windows 98 + Internet Explorer 6

[31] >>26 に [[IE]]6 SP2 を入れました。 Install の option
で **語サポートの選択肢があるのをすべて追加しました。
- [33]  ''[[名無しさん]]'' 日付が今日 (install 日) のになってしまった...
- [34]  ''[[名無しさん]]'' 日付が今日じゃないのは、全部 >>26 のと同じ様です。
- [35] 実際に変換が変わっているのは 1256 だけですた。その内容は [[WindowsCodePage]>>36] に書きます。
- [37] [[中文]],[[韓語]]表示サポートも追加したにもかかわらず、これらは更新されませんでした。最新の変換表はあるはずなのに。 (9x 向けには用意してない?)
- [38] 2002-11-04 (月) 16:29 ''>>33'' >>31 以外のも、 Windoze や IE の install 日時が影響している可能性があるから、日時は参考程度にしかならんな。
- [66] [WEAK[2003-12-03 19:56:48 +00:00]] ''[[kbdtuf.dll]]'': 
[[#comment]]
[PRE[
Windows/4.10.1998 (Windows 98) (586) MSIE/6.0.2800.1106
CP_10004 NLS         5,960  02-11-04  15:00 CP_10004.NLS
CP_1250  NLS         9,956  02-11-04  15:00 CP_1250.NLS
CP_1251  NLS         6,880  02-11-04  15:00 CP_1251.NLS
CP_1252  NLS         9,938  97-07-31   0:50 CP_1252.NLS
CP_1253  NLS         6,888  02-11-04  15:00 CP_1253.NLS
CP_1254  NLS         7,708  02-11-04  15:00 CP_1254.NLS
CP_1255  NLS         5,940  02-11-04  15:00 CP_1255.NLS
CP_1256  NLS         6,672  02-11-04  15:00 CP_1256.NLS
CP_1257  NLS         6,112  02-11-04  15:00 CP_1257.NLS
CP_1258  NLS         6,004  02-11-04  15:00 CP_1258.NLS
CP_1361  NLS       397,474  96-05-23   2:47 CP_1361.NLS
CP_20269 NLS         5,736  96-05-23   2:47 CP_20269.NLS
CP_20866 NLS         6,824  02-11-04  15:00 CP_20866.NLS
CP_21866 NLS         6,824  02-11-04  15:00 CP_21866.NLS
CP_28591 NLS         6,312  96-10-09   3:28 CP_28591.NLS
CP_28592 NLS         6,312  02-11-04  15:00 CP_28592.NLS
CP_28593 NLS         6,376  96-10-09   3:28 CP_28593.NLS
CP_28594 NLS         6,312  02-11-04  15:00 CP_28594.NLS
CP_28595 NLS         6,568  02-11-04  15:00 CP_28595.NLS
CP_28596 NLS         6,696  02-11-04  15:00 CP_28596.NLS
CP_28597 NLS         6,536  02-11-04  15:00 CP_28597.NLS
CP_28598 NLS         6,568  02-11-04  15:00 CP_28598.NLS
CP_28599 NLS         6,312  02-11-04  15:00 CP_28599.NLS
CP_28605 NLS         6,344  99-01-05  23:41 CP_28605.NLS
CP_437   NLS         8,648  98-06-12  20:01 CP_437.NLS
CP_708   NLS         5,896  02-11-04  15:00 CP_708.NLS
CP_720   NLS         6,216  02-11-04  15:00 CP_720.NLS
CP_850   NLS         8,648  98-06-12  20:01 CP_850.NLS
CP_852   NLS         8,392  02-11-04  15:00 CP_852.NLS
CP_862   NLS         8,712  02-11-04  15:00 CP_862.NLS
CP_866   NLS         7,496  02-11-04  15:00 CP_866.NLS
CP_874   NLS        10,504  02-11-04  15:00 CP_874.NLS
CP_932   NLS       407,586  97-09-03  22:35 CP_932.NLS
CP_936   NLS       537,858  97-09-12   9:52 CP_936.NLS
CP_949   NLS       529,478  96-07-03   2:25 CP_949.NLS
CP_950   NLS       486,850  96-10-25   4:58 CP_950.NLS
LOCALE   NLS       175,338  98-06-12  20:01 LOCALE.NLS
UNICODE  NLS        34,676  98-06-12  20:01 UNICODE.NLS
]PRE]


* Windows 2000

[1] [[Windows]] 9x よりも Code Page の NLS 以外の NLS
が多いですね...

[PRE[
WindowsNT/5.00.2195 (Service Pack 1) (Windows 2000) (586)
MSIE/6.0.2800.1106
2000/08/26  21:00                  168 l_except.nls
2000/08/26  21:00                7,046 l_intl.nls
2000/08/26  21:00                7,070 ctype.nls
2000/08/26  21:00               13,696 sorttbls.nls
2000/08/26  21:00               28,288 xjis.nls
2000/08/26  21:00               47,066 ksc.nls
2000/08/26  21:00               66,082 c_037.nls
2000/08/26  21:00               66,082 c_10000.nls
2000/08/26  21:00               66,082 c_10079.nls
2000/08/26  21:00               66,082 c_1026.nls
2000/08/26  21:00               66,082 c_1250.nls
2000/08/26  21:00               66,082 c_1251.nls
2000/08/26  21:00               66,082 c_1252.nls
2000/08/26  21:00               66,082 c_1253.nls
2000/08/26  21:00               66,082 c_1254.nls
2000/08/26  21:00               66,082 c_1255.nls
2000/08/26  21:00               66,082 c_1256.nls
2000/08/26  21:00               66,082 c_1257.nls
2000/08/26  21:00               66,082 c_1258.nls
2000/08/26  21:00               66,082 c_20127.nls
2000/08/26  21:00               66,082 c_20290.nls
2000/08/26  21:00               66,082 c_20866.nls
2000/08/26  21:00               66,082 c_20905.nls
2000/08/26  21:00               66,082 c_21027.nls
2000/08/26  21:00               66,082 c_21866.nls
2000/08/26  21:00               66,082 c_28591.nls
2000/08/26  21:00               66,082 c_28592.nls
2000/08/26  21:00               66,082 c_28593.nls
2000/08/26  21:00               66,082 c_28598.nls
2000/08/26  21:00               66,082 c_28605.nls
2000/08/26  21:00               66,082 c_500.nls
2000/08/26  21:00               66,594 c_437.nls
2000/08/26  21:00               66,594 c_775.nls
2000/08/26  21:00               66,594 c_850.nls
2000/08/26  21:00               66,594 c_860.nls
2000/08/26  21:00               66,594 c_861.nls
2000/08/26  21:00               66,594 c_863.nls
2000/08/26  21:00               66,594 c_865.nls
2000/08/26  21:00               66,594 c_874.nls
2000/08/26  21:00               66,728 big5.nls
2000/08/26  21:00               82,172 bopomofo.nls
2000/08/26  21:00               83,748 prc.nls
2000/08/26  21:00               83,748 prcp.nls
2000/08/26  21:00               89,588 unicode.nls
2000/08/26  21:00              139,810 c_20261.nls
2000/08/26  21:00              162,850 c_10001.nls
2000/08/26  21:00              162,850 c_932.nls
2000/08/26  21:00              173,602 c_20936.nls
2000/08/26  21:00              177,698 c_20949.nls
2000/08/26  21:00              180,258 c_20000.nls
2000/08/26  21:00              180,770 c_20932.nls
2000/08/26  21:00              192,236 locale.nls
2000/08/26  21:00              196,642 c_936.nls
2000/08/26  21:00              196,642 c_949.nls
2000/08/26  21:00              196,642 c_950.nls
2000/08/26  21:00              262,148 sortkey.nls
]PRE]

- [41] 21866.nls があるのに MB2WC/WC2MB で使えない。なんで?
- [42] >>41 28593, 28598 もだ。たまたま調子が悪かっただけかもしれんが、実機が手元に無いからすぐには確認できん...
- [43] 変換処理を >>21 と比較してみたが、 CP125[VAR[x]] 系を中心に [CODE(CHAR)[FULLWIDTH]] -> 0x[VAR[XX]] が追加されているのと、 CP9[VAR[xx]] とかで [CODE(CHAR)[EURO SIGN]] とかの追加があるのが大きな変化。
- [44] >>42 1026, 20905, 775 も
- [45] >>41-44 確認してみますたが、やっぱり駄目ですた。原因はわかりません。
- [50] [WEAK[2003-09-05 15:01:46 +00:00]] ''[[名無しさん]]'': ksc.nls
- [56] [WEAK[2003-09-15 11:58:00 +00:00]] ''[[名無しさん]]'': c_10003
- [59] [WEAK[2003-09-19 18:58:01 +00:00]] ''[[名無しさん]]'': xjis.nls
- [60] [WEAK[2003-09-21 21:16:36 +00:00]] ''[[c_20290.nls]]'': 
- [61] [WEAK[2003-09-25 07:26:54 +00:00]] ''[[c_1361]]'': 
- [63] [WEAK[2003-10-22 10:55:21 +00:00]] ''[[c_855.nls]]'': 
- [64] [WEAK[2003-10-23 09:22:20 +00:00]] ''[[prc]]'': 
- [69] [WEAK[2004-01-31 17:37:19 +00:00]] ''[[名無しさん]]'': C_28595.NLS
[[#comment]]


* Windows XP

[3]
[PRE[
WindowsNT/5.01.2600 (Service Pack 1) (Windows XP) (586) MSIE/6.0.2800.1106
2001/08/28  21:00               168 l_except.nls
2001/08/28  21:00             7,046 l_intl.nls
2001/08/28  21:00             8,386 ctype.nls
2001/08/28  21:00            21,116 sorttbls.nls
2001/08/28  21:00            24,772 geo.nls
2001/08/28  21:00            28,288 xjis.nls
2001/08/28  21:00            47,066 ksc.nls
2001/08/28  21:00            66,082 C_28594.NLS
2001/08/28  21:00            66,082 C_28595.NLS
2001/08/28  21:00            66,082 C_28597.NLS
2001/08/28  21:00            66,082 c_037.nls
2001/08/28  21:00            66,082 c_10000.nls
2001/08/28  21:00            66,082 c_10006.nls
2001/08/28  21:00            66,082 c_10007.nls
2001/08/28  21:00            66,082 c_10010.nls
2001/08/28  21:00            66,082 c_10017.nls
2001/08/28  21:00            66,082 c_10029.nls
2001/08/28  21:00            66,082 c_10079.nls
2001/08/28  21:00            66,082 c_10081.nls
2001/08/28  21:00            66,082 c_10082.nls
2001/08/28  21:00            66,082 c_1026.nls
2001/08/28  21:00            66,082 c_1250.nls
2001/08/28  21:00            66,082 c_1251.nls
2001/08/28  21:00            66,082 c_1252.nls
2001/08/28  21:00            66,082 c_1253.nls
2001/08/28  21:00            66,082 c_1254.nls
2001/08/28  21:00            66,082 c_1255.nls
2001/08/28  21:00            66,082 c_1256.nls
2001/08/28  21:00            66,082 c_1257.nls
2001/08/28  21:00            66,082 c_1258.nls
2001/08/28  21:00            66,082 c_20127.nls
2001/08/28  21:00            66,082 c_20290.nls
2001/08/28  21:00            66,082 c_20866.nls
2001/08/28  21:00            66,082 c_20905.nls
2001/08/28  21:00            66,082 c_21027.nls
2001/08/28  21:00            66,082 c_21866.nls
2001/08/28  21:00            66,082 c_28591.nls
2001/08/28  21:00            66,082 c_28592.nls
2001/08/28  21:00            66,082 c_28593.nls
2001/08/28  21:00            66,082 c_28598.nls
2001/08/28  21:00            66,082 c_28599.nls
2001/08/28  21:00            66,082 c_28605.nls
2001/08/28  21:00            66,082 c_500.nls
2001/08/28  21:00            66,082 c_875.nls
2001/08/28  21:00            66,594 c_437.nls
2001/08/28  21:00            66,594 c_737.nls
2001/08/28  21:00            66,594 c_775.nls
2001/08/28  21:00            66,594 c_850.nls
2001/08/28  21:00            66,594 c_852.nls
2001/08/28  21:00            66,594 c_855.nls
2001/08/28  21:00            66,594 c_857.nls
2001/08/28  21:00            66,594 c_860.nls
2001/08/28  21:00            66,594 c_861.nls
2001/08/28  21:00            66,594 c_863.nls
2001/08/28  21:00            66,594 c_865.nls
2001/08/28  21:00            66,594 c_866.nls
2001/08/28  21:00            66,594 c_869.nls
2001/08/28  21:00            66,594 c_874.nls
2001/08/28  21:00            66,728 big5.nls
2001/08/28  21:00            82,172 bopomofo.nls
2001/08/28  21:00            83,748 prc.nls
2001/08/28  21:00            83,748 prcp.nls
2001/08/28  21:00            89,588 unicode.nls
2001/08/28  21:00           139,810 c_20261.nls
2001/08/28  21:00           162,850 c_10001.nls
2001/08/28  21:00           162,850 c_932.nls
2001/08/28  21:00           173,602 c_10008.nls
2001/08/28  21:00           173,602 c_20936.nls
2001/08/28  21:00           177,698 c_10003.nls
2001/08/28  21:00           177,698 c_20949.nls
2001/08/28  21:00           180,258 c_20000.nls
2001/08/28  21:00           180,770 c_20932.nls
2001/08/28  21:00           189,986 c_1361.nls
2001/08/28  21:00           195,618 c_10002.nls
2001/08/28  21:00           196,642 c_936.nls
2001/08/28  21:00           196,642 c_949.nls
2001/08/28  21:00           196,642 c_950.nls
2001/08/28  21:00           262,148 sortkey.nls
2002/04/10  10:17           209,010 locale.nls
2002/04/20  10:20            66,082 c_28603.nls
]PRE]
- [4] 変換表の差異などについては調査中です。
(MB2WC/WC2MB の実装に違いがあるのか、 [CODE[winapi2tbl.pl]]
がうまく動かなかったです。)
- [5] >>4 この原因は MB2WC の細かな動作の違いにより winapi2tbl.pl
が動かなくなった (完全に winapi2tbl.pl のバグ) みたいです。
- [48] >>95 と同じ変更が 1256 にあります。 ([[WindowsCodePage]>>36])
- [49] 48 は >>95 じゃなくて >>35
- [51] [WEAK[2003-09-06 05:46:52 +00:00]] ''[[c_28597.nls]]'': 
- [52] [WEAK[2003-09-09 18:31:53 +00:00]] ''[[名無しさん]]'': c_21866
- [53] [WEAK[2003-09-09 19:17:43 +00:00]] ''[[c_20290.nls]]'': 
- [55] [WEAK[2003-09-13 07:52:09 +00:00]] ''[[c_20866.nls]]'': 
- [57] [WEAK[2003-09-16 18:20:04 +00:00]] ''[[xjis.nls]]'': 
- [70] [WEAK[2004-02-03 08:10:19 +00:00]] ''[[euc]]'': 
- [71] [WEAK[2004-02-09 19:06:46 +00:00]] ''[[c_10001.nls]]'': c_10001.nls
[[#comment]]


* 

[62]
[PRE[
]PRE]

* お手持ちの環境の情報を追加して下さい。

[32] 次の script を実行した結果できる nls-list.txt
の内容を、 >>25->>31 のように貼り付けてください。

なお、この script 
は[[Windozeの版を調べる]]および[[版を調べる:InternetExplorer]]
のために [[Message::Field::UA]]
<http://suika.fam.cx/gate/cvs/perl/lib/Message/Field/UA.pm>
を使っています。 (M::F::UA が使っている Message::Field::Structured,
Message::Util, Message::MIME::Charset, 
Message::MIME::Charset::MinName も最低限必要になります。)

(Windoze と Internet Explorer の版を手動で書き入れる場合は、下記
script 中の $ua に関係する部分を削除してください。)

[PRE[
#!/usr/bin/perl
use strict;
my @lst;
push @lst, `command /c dir c:\\windows\\system\\*.nls`;
push @lst, `cmd /c dir c:\\winnt\\system32\\*.nls`;
push @lst, `cmd /c dir c:\\windows\\system32\\*.nls`;
@lst = sort grep /NLS/i, @lst;
open LST, '>nls-list.txt';
#
require Message::Field::UA;
my $ua = new Message::Field::UA;
$ua->add_our_name;
$ua->replace_system_version ('ie', -prepend => 0);
print LST $ua."\n";
#
print LST join /\n/, @lst;
close LST;
open BAT, '>mktbls.bat'; for (@lst) {
print BAT "perl winapi2tbl.pl $1 > win95-cp$1.tbl\n" if /(\d+)/;
} close BAT;
]PRE]

[[#form:'%text(size=>10,label=>環境,id=>name,description=>"OS などについての簡単な説明 (節題になります。)"); %textarea(description=>">> 32 の結果",id=>main); %submit(label=>"追加");':'':'%output(id=>nlslist);']]


* メモ

- [46] [CODE(CHAR)[FULLWIDTH]] -> halfwidth 変換を持ってる表でも、なぜか [CODE(CHAR)[FULLWIDTH QUESTION MARK]] -> [CODE[0x3F]] だけは欠けていたりします。他にも [CODE(CHAR)[INVERSED QUESTION MARK]] など周囲の状況的に [CODE[0x3F]] に変換されても良いようなのが抜けていたりします。これは、推測ですが WC2MB の[[置換文字]]が既定では [CODE[0x3F]] なので、入れなかったんじゃないかと思われます。 (この置換文字は簡単に変更できちゃうんで、とってもまずいんですがね...)
- [47] [[Win32s]] にも [[NLS]] が入っているなぁ。