そんな暮らしを目指しています。
放置中のサイトtacoworks.jpもどうぞ。
id:logion:20041222#p1 や id:logion:20051128#p1 でも書いたようにすげー心待ちにしていていた C++Builder2006J ですが、昨年末にバージョンアップ版が届きました。年明けの Update1 も当てて移行の準備も万端なはず…なのですが、ちょっと気になる点があってまだ移行していませんでした。
それは、C++Builder6J の頃から気になっていた文字列の処理についてです。
パスやファイル名を操作する自作ライブラリにおいて、、それまでは std::string (char) を使っていて、日本語ファイル名の事については(自分自身が使わないという理由で)特に気にしていませんでした。しかし、id:logion:20050706#p1 や id:logion:20050912 のような事態に遭遇してからはUnicode を使うように宗旨変えし、std::wstring (wchar_t) に書き変えていました。
この Unicode 版の自作ライブラリを C++Builder2006 でコンパイルした所、問題が発生しました。id:logion:20050912 のように std::locale を使うコードは、(C++Builder6J では問題なく動いていましたが) C++Builder2006 ではlocale の生成時に例外が飛んでくるようになっていたのです。
どうも locale 名の "ja_JP.sjis" がマズいらしいのですが、正しい locale 名というものを知りません。試行錯誤でとりあえず "japanese" ではちゃんと生成できていましたが…。
ということで、調べてみました。(長いのでいったん切ります)
まず locale 名にどのようなものがあるのか全然知らなかったので、google 等でそれっぽい文字列をかき集めて以下を試してみました。
| ロケール文字列 | bcb6(C++Builder6J) | bcb10(C++Builder2006J) | vc71(VisualStudio.NET2003) | vc8(VisualStudio2005) |
|---|---|---|---|---|
| ja_JP | NULL | NULL | NULL | NULL |
| ja_JP.SJIS | NULL | NULL | NULL | NULL |
| ja_JP.sjis | NULL | NULL | NULL | NULL |
| ja_JP.EUC | NULL | NULL | NULL | NULL |
| ja_JP.eucJP | NULL | NULL | NULL | NULL |
| ja_JP.utf8 | NULL | NULL | NULL | NULL |
| japanese | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 |
| japanese_JAPAN | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 |
| japanese_JAPAN.932 | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 |
| Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 |
| Japanese_Japan.20932 | Japanese_Japan.20932 | Japanese_Japan.20932 | Japanese_Japan.20932 | Japanese_Japan.20932 |
| JAPANESE_JAPAN.JA16SJIS | Japanese_Japan.0 | Japanese_Japan.0 | NULL | NULL |
| japanese_Japan.ja16sjis | Japanese_Japan.0 | Japanese_Japan.0 | NULL | NULL |
| japanese_Japan.ja16euc | Japanese_Japan.0 | Japanese_Japan.0 | NULL | NULL |
| Japanese_Japan.UTF8 | Japanese_Japan.0 | Japanese_Japan.0 | NULL | NULL |
| ja_JP.eucJP | NULL | NULL | NULL | NULL |
| ja_JP.ujis | NULL | NULL | NULL | NULL |
| ja_JP.EUC | NULL | NULL | NULL | NULL |
| japanese.euc | Japanese_Japan.0 | Japanese_Japan.0 | NULL | NULL |
| Japanese-EUC | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 | NULL |
| ja | NULL | NULL | Japanese_Japan.932 | NULL |
| jpn | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 |
| japan | NULL | NULL | Japanese_Japan.932 | NULL |
| C-SJIS | NULL | NULL | Catalan_Spain.1252 | NULL |
| de_DE | German_Germany.850 | German_Germany.850 | NULL | NULL |
| de_DE@euro | German_Germany.850 | German_Germany.850 | NULL | NULL |
| de_DE | German_Germany.850 | German_Germany.850 | NULL | NULL |
| de | NULL | NULL | NULL | NULL |
| ge | NULL | NULL | German_Germany.1252 | NULL |
| en_EN | NULL | NULL | NULL | NULL |
| English_USA.1252 | NULL | NULL | English_United States.1252 | English_United States.1252 |
| French_France.1252 | French_France.1252 | French_France.1252 | French_France.1252 | French_France.1252 |
| French_Canada.ACP | French_Canada.0 | French_Canada.0 | French_Canada.1252 | French_Canada.1252 |
| French_Canada.OCP | French_Canada.0 | French_Canada.0 | French_Canada.850 | French_Canada.850 |
| de_DE.iso88591 | German_Germany.0 | German_Germany.0 | NULL | NULL |
| de_DE.ISO-8859-1 | German_Germany.0 | German_Germany.0 | NULL | NULL |
| chinese | Chinese_Taiwan.950 | Chinese_Taiwan.950 | Chinese_Taiwan.950 | Chinese_Taiwan.950 |
| chinese-simplified | Chinese_Taiwan.950 | Chinese_Taiwan.950 | Chinese_Taiwan.950 | Chinese_People's Republic of China.936 |
| chinese-traditional | Chinese_Taiwan.950 | Chinese_Taiwan.950 | Chinese_Taiwan.950 | Chinese_Taiwan.950 |
| czech | Czech_Czech Republic.852 | Czech_Czech Republic.852 | Czech_Czech Republic.1250 | Czech_Czech Republic.1250 |
| danish | Danish_Denmark.850 | Danish_Denmark.850 | Danish_Denmark.1252 | Danish_Denmark.1252 |
| dutch | Dutch_Netherlands.850 | Dutch_Netherlands.850 | Dutch_Netherlands.1252 | Dutch_Netherlands.1252 |
| dutch-belgian | Dutch_Netherlands.850 | Dutch_Netherlands.850 | Dutch_Netherlands.1252 | Dutch_Belgium.1252 |
| belgian | Belarusian_Belarus.866 | Belarusian_Belarus.866 | Dutch_Belgium.1252 | Dutch_Belgium.1252 |
| english | English_United States.437 | English_United States.437 | English_United States.1252 | English_United States.1252 |
| english-aus | English_United States.437 | English_United States.437 | English_United States.1252 | English_Australia.1252 |
| australian | NULL | NULL | English_Australia.1252 | English_Australia.1252 |
| canadian | NULL | NULL | English_Canada.1252 | English_Canada.1252 |
| english-can | English_United States.437 | English_United States.437 | English_United States.1252 | English_Canada.1252 |
| english-nz | English_United States.437 | English_United States.437 | English_United States.1252 | English_New Zealand.1252 |
| english-uk | English_United States.437 | English_United States.437 | English_United States.1252 | English_United Kingdom.1252 |
| uk | NULL | NULL | Ukrainian_Ukraine.1251 | English_United Kingdom.1252 |
| american | NULL | NULL | English_United States.1252 | English_United States.1252 |
| american english | English_United States.437 | English_United States.437 | English_United States.1252 | English_United States.1252 |
| american-english | English_United States.437 | English_United States.437 | English_United States.1252 | English_United States.1252 |
| english-american | English_United States.437 | English_United States.437 | English_United States.1252 | English_United States.1252 |
| english-us | English_United States.437 | English_United States.437 | English_United States.1252 | English_United States.1252 |
| english-usa | English_United States.437 | English_United States.437 | English_United States.1252 | English_United States.1252 |
| us | NULL | NULL | English_United States.1252 | English_United States.1252 |
| finnish | Finnish_Finland.850 | Finnish_Finland.850 | Finnish_Finland.1252 | Finnish_Finland.1252 |
| french | French_France.850 | French_France.850 | French_France.1252 | French_France.1252 |
| french-belgian | French_France.850 | French_France.850 | French_France.1252 | French_Belgium.1252 |
| french-canadian | French_France.850 | French_France.850 | French_France.1252 | French_Canada.1252 |
| french-swiss | French_France.850 | French_France.850 | French_France.1252 | French_Switzerland.1252 |
| german | German_Germany.850 | German_Germany.850 | German_Germany.1252 | German_Germany.1252 |
| german-austrian | German_Germany.850 | German_Germany.850 | German_Germany.1252 | German_Austria.1252 |
| swiss | NULL | NULL | German_Switzerland.1252 | German_Switzerland.1252 |
| german-swiss | German_Germany.850 | German_Germany.850 | German_Germany.1252 | German_Switzerland.1252 |
| greek | Greek_Greece.737 | Greek_Greece.737 | Greek_Greece.1253 | Greek_Greece.1253 |
| hungarian | Hungarian_Hungary.852 | Hungarian_Hungary.852 | Hungarian_Hungary.1250 | Hungarian_Hungary.1250 |
| icelandic | Icelandic_Iceland.850 | Icelandic_Iceland.850 | Icelandic_Iceland.1252 | Icelandic_Iceland.1252 |
| italian | Italian_Italy.850 | Italian_Italy.850 | Italian_Italy.1252 | Italian_Italy.1252 |
| italian-swiss | Italian_Italy.850 | Italian_Italy.850 | Italian_Italy.1252 | Italian_Switzerland.1252 |
| japanese | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 | Japanese_Japan.932 |
| korean | Korean_Korea.949 | Korean_Korea.949 | Korean_Korea.949 | Korean_Korea.949 |
| norwegian | Norwegian (Bokm虱)_Norway.850 | Norwegian (Bokm虱)_Norway.850 | Norwegian (Bokm虱)_Norway.1252 | Norwegian (Bokm虱)_Norway.1252 |
| norwegian-bokmal | Norwegian (Bokm虱)_Norway.850 | Norwegian (Bokm虱)_Norway.850 | Norwegian (Bokm虱)_Norway.1252 | Norwegian (Bokm虱)_Norway.1252 |
| norwegian-nynorsk | Norwegian (Bokm虱)_Norway.850 | Norwegian (Bokm虱)_Norway.850 | Norwegian (Bokm虱)_Norway.1252 | Norwegian-Nynorsk_Norway.1252 |
| polish | Polish_Poland.852 | Polish_Poland.852 | Polish_Poland.1250 | Polish_Poland.1250 |
| portuguese | Portuguese_Brazil.850 | Portuguese_Brazil.850 | Portuguese_Brazil.1252 | Portuguese_Brazil.1252 |
| portuguese-brazilian | Portuguese_Brazil.850 | Portuguese_Brazil.850 | Portuguese_Brazil.1252 | Portuguese_Brazil.1252 |
| russian | Russian_Russia.866 | Russian_Russia.866 | Russian_Russia.1251 | Russian_Russia.1251 |
| slovak | Slovak_Slovakia.852 | Slovak_Slovakia.852 | Slovak_Slovakia.1250 | Slovak_Slovakia.1250 |
| spanish | Spanish_Spain.850 | Spanish_Spain.850 | Spanish_Spain.1252 | Spanish_Spain.1252 |
| spanish-mexican | Spanish_Spain.850 | Spanish_Spain.850 | Spanish_Spain.1252 | Spanish_Mexico.1252 |
| spanish-modern | Spanish_Spain.850 | Spanish_Spain.850 | Spanish_Spain.1252 | Spanish_Spain.1252 |
| swedish | Swedish_Sweden.850 | Swedish_Sweden.850 | Swedish_Sweden.1252 | Swedish_Sweden.1252 |
| turkish | Turkish_Turkey.857 | Turkish_Turkey.857 | Turkish_Turkey.1254 | Turkish_Turkey.1254 |
| chs | NULL | NULL | Chinese_People's Republic of China.936 | Chinese_People's Republic of China.936 |
| cht | Chinese_Taiwan.950 | Chinese_Taiwan.950 | Chinese_Taiwan.950 | Chinese_Taiwan.950 |
| csy | Czech_Czech Republic.852 | Czech_Czech Republic.852 | Czech_Czech Republic.1250 | Czech_Czech Republic.1250 |
| dan | Danish_Denmark.850 | Danish_Denmark.850 | Danish_Denmark.1252 | Danish_Denmark.1252 |
| nld | Dutch_Netherlands.850 | Dutch_Netherlands.850 | Dutch_Netherlands.1252 | Dutch_Netherlands.1252 |
| nlb | NULL | NULL | Dutch_Belgium.1252 | Dutch_Belgium.1252 |
| ena | NULL | NULL | English_Australia.1252 | English_Australia.1252 |
| enc | NULL | NULL | English_Canada.1252 | English_Canada.1252 |
| enz | NULL | NULL | English_New Zealand.1252 | English_New Zealand.1252 |
| eng | NULL | NULL | English_United Kingdom.1252 | English_United Kingdom.1252 |
| enu | English_United States.437 | English_United States.437 | English_United States.1252 | English_United States.1252 |
| usa | NULL | NULL | English_United States.1252 | English_United States.1252 |
| fin | Finnish_Finland.850 | Finnish_Finland.850 | Finnish_Finland.1252 | Finnish_Finland.1252 |
| fra | French_France.850 | French_France.850 | French_France.1252 | French_France.1252 |
| frb | NULL | NULL | French_Belgium.1252 | French_Belgium.1252 |
| frc | NULL | NULL | French_Canada.1252 | French_Canada.1252 |
| frs | NULL | NULL | French_Switzerland.1252 | French_Switzerland.1252 |
| deu | German_Germany.850 | German_Germany.850 | German_Germany.1252 | German_Germany.1252 |
| dea | NULL | NULL | German_Austria.1252 | German_Austria.1252 |
| des | NULL | NULL | German_Switzerland.1252 | German_Switzerland.1252 |
| ell | Greek_Greece.737 | Greek_Greece.737 | Greek_Greece.1253 | Greek_Greece.1253 |
| hun | Hungarian_Hungary.852 | Hungarian_Hungary.852 | Hungarian_Hungary.1250 | Hungarian_Hungary.1250 |
| isl | Icelandic_Iceland.850 | Icelandic_Iceland.850 | Icelandic_Iceland.1252 | Icelandic_Iceland.1252 |
| ita | Italian_Italy.850 | Italian_Italy.850 | Italian_Italy.1252 | Italian_Italy.1252 |
| its | NULL | NULL | Italian_Switzerland.1252 | Italian_Switzerland.1252 |
| kor | Korean_Korea.949 | Korean_Korea.949 | Korean_Korea.949 | Korean_Korea.949 |
| nor | Norwegian (Bokm虱)_Norway.850 | Norwegian (Bokm虱)_Norway.850 | Norwegian (Bokm虱)_Norway.1252 | Norwegian (Bokm虱)_Norway.1252 |
| non | NULL | NULL | Norwegian-Nynorsk_Norway.1252 | Norwegian-Nynorsk_Norway.1252 |
| plk | Polish_Poland.852 | Polish_Poland.852 | Polish_Poland.1250 | Polish_Poland.1250 |
| ptg | NULL | NULL | Portuguese_Portugal.1252 | Portuguese_Portugal.1252 |
| ptb | Portuguese_Brazil.850 | Portuguese_Brazil.850 | Portuguese_Brazil.1252 | Portuguese_Brazil.1252 |
| rus | Russian_Russia.866 | Russian_Russia.866 | Russian_Russia.1251 | Russian_Russia.1251 |
| sky | Slovak_Slovakia.852 | Slovak_Slovakia.852 | Slovak_Slovakia.1250 | Slovak_Slovakia.1250 |
| esp | Spanish_Spain.850 | Spanish_Spain.850 | Spanish_Spain.1252 | Spanish_Spain.1252 |
| esm | NULL | NULL | Spanish_Mexico.1252 | Spanish_Mexico.1252 |
| esn | NULL | NULL | Spanish_Spain.1252 | Spanish_Spain.1252 |
| sve | Swedish_Sweden.850 | Swedish_Sweden.850 | Swedish_Sweden.1252 | Swedish_Sweden.1252 |
| trk | Turkish_Turkey.857 | Turkish_Turkey.857 | Turkish_Turkey.1254 | Turkish_Turkey.1254 |
| ロケール文字列 | bcb6(C++Builder6J) | bcb10(C++Builder2006J) | vc71(VisualStudio.NET2003) | vc8(VisualStudio2005) |
|---|---|---|---|---|
| ja_JP | Succeeded | Failed: bad locale name | Failed: bad locale name | Failed: bad locale name |
| ja_JP.SJIS | Succeeded | AccessViolation | Failed: bad locale name | Failed: bad locale name |
| ja_JP.sjis | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| ja_JP.EUC | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| ja_JP.eucJP | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| ja_JP.utf8 | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| japanese | Succeeded | -- | Succeeded | Succeeded |
| japanese_JAPAN | Succeeded | -- | Succeeded | Succeeded |
| japanese_JAPAN.932 | Succeeded | -- | Succeeded | Succeeded |
| Japanese_Japan.932 | Succeeded | -- | Succeeded | Succeeded |
| Japanese_Japan.20932 | Succeeded | -- | Succeeded | Succeeded |
| JAPANESE_JAPAN.JA16SJIS | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| japanese_Japan.ja16sjis | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| japanese_Japan.ja16euc | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| Japanese_Japan.UTF8 | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| ja_JP.eucJP | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| ja_JP.ujis | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| ja_JP.EUC | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| japanese.euc | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| Japanese-EUC | Succeeded | -- | Succeeded | Failed: bad locale name |
| ja | Succeeded | -- | Succeeded | Failed: bad locale name |
| jpn | Succeeded | -- | Succeeded | Succeeded |
| japan | Succeeded | -- | Succeeded | Failed: bad locale name |
| C-SJIS | Succeeded | -- | Succeeded | Failed: bad locale name |
| de_DE | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| de_DE@euro | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| de_DE | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| de | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| ge | Succeeded | -- | Succeeded | Failed: bad locale name |
| en_EN | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| English_USA.1252 | Succeeded | -- | Succeeded | Succeeded |
| French_France.1252 | Succeeded | -- | Succeeded | Succeeded |
| French_Canada.ACP | Succeeded | -- | Succeeded | Succeeded |
| French_Canada.OCP | Succeeded | -- | Succeeded | Succeeded |
| de_DE.iso88591 | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| de_DE.ISO-8859-1 | Succeeded | -- | Failed: bad locale name | Failed: bad locale name |
| chinese | Succeeded | -- | Succeeded | Succeeded |
| chinese-simplified | Succeeded | -- | Succeeded | Succeeded |
| chinese-traditional | Succeeded | -- | Succeeded | Succeeded |
| czech | Succeeded | -- | Succeeded | Succeeded |
| danish | Succeeded | -- | Succeeded | Succeeded |
| dutch | Succeeded | -- | Succeeded | Succeeded |
| dutch-belgian | Succeeded | -- | Succeeded | Succeeded |
| belgian | Succeeded | -- | Succeeded | Succeeded |
| english | Succeeded | -- | Succeeded | Succeeded |
| english-aus | Succeeded | -- | Succeeded | Succeeded |
| australian | Succeeded | -- | Succeeded | Succeeded |
| canadian | Succeeded | -- | Succeeded | Succeeded |
| english-can | Succeeded | -- | Succeeded | Succeeded |
| english-nz | Succeeded | -- | Succeeded | Succeeded |
| english-uk | Succeeded | -- | Succeeded | Succeeded |
| uk | Succeeded | -- | Succeeded | Succeeded |
| american | Succeeded | -- | Succeeded | Succeeded |
| american english | Succeeded | -- | Succeeded | Succeeded |
| american-english | Succeeded | -- | Succeeded | Succeeded |
| english-american | Succeeded | -- | Succeeded | Succeeded |
| english-us | Succeeded | -- | Succeeded | Succeeded |
| english-usa | Succeeded | -- | Succeeded | Succeeded |
| us | Succeeded | -- | Succeeded | Succeeded |
| finnish | Succeeded | -- | Succeeded | Succeeded |
| french | Succeeded | -- | Succeeded | Succeeded |
| french-belgian | Succeeded | -- | Succeeded | Succeeded |
| french-canadian | Succeeded | -- | Succeeded | Succeeded |
| french-swiss | Succeeded | -- | Succeeded | Succeeded |
| german | Succeeded | -- | Succeeded | Succeeded |
| german-austrian | Succeeded | -- | Succeeded | Succeeded |
| swiss | Succeeded | -- | Succeeded | Succeeded |
| german-swiss | Succeeded | -- | Succeeded | Succeeded |
| greek | Succeeded | -- | Succeeded | Succeeded |
| hungarian | Succeeded | -- | Succeeded | Succeeded |
| icelandic | Succeeded | -- | Succeeded | Succeeded |
| italian | Succeeded | -- | Succeeded | Succeeded |
| italian-swiss | Succeeded | -- | Succeeded | Succeeded |
| japanese | Succeeded | -- | Succeeded | Succeeded |
| korean | Succeeded | -- | Succeeded | Succeeded |
| norwegian | Succeeded | -- | Succeeded | Succeeded |
| norwegian-bokmal | Succeeded | -- | Succeeded | Succeeded |
| norwegian-nynorsk | Succeeded | -- | Succeeded | Succeeded |
| polish | Succeeded | -- | Succeeded | Succeeded |
| portuguese | Succeeded | -- | Succeeded | Succeeded |
| portuguese-brazilian | Succeeded | -- | Succeeded | Succeeded |
| russian | Succeeded | -- | Succeeded | Succeeded |
| slovak | Succeeded | -- | Succeeded | Succeeded |
| spanish | Succeeded | -- | Succeeded | Succeeded |
| spanish-mexican | Succeeded | -- | Succeeded | Succeeded |
| spanish-modern | Succeeded | -- | Succeeded | Succeeded |
| swedish | Succeeded | -- | Succeeded | Succeeded |
| turkish | Succeeded | -- | Succeeded | Succeeded |
| chs | Succeeded | -- | Succeeded | Succeeded |
| cht | Succeeded | -- | Succeeded | Succeeded |
| csy | Succeeded | -- | Succeeded | Succeeded |
| dan | Succeeded | -- | Succeeded | Succeeded |
| nld | Succeeded | -- | Succeeded | Succeeded |
| nlb | Succeeded | -- | Succeeded | Succeeded |
| ena | Succeeded | -- | Succeeded | Succeeded |
| enc | Succeeded | -- | Succeeded | Succeeded |
| enz | Succeeded | -- | Succeeded | Succeeded |
| eng | Succeeded | -- | Succeeded | Succeeded |
| enu | Succeeded | -- | Succeeded | Succeeded |
| usa | Succeeded | -- | Succeeded | Succeeded |
| fin | Succeeded | -- | Succeeded | Succeeded |
| fra | Succeeded | -- | Succeeded | Succeeded |
| frb | Succeeded | -- | Succeeded | Succeeded |
| frc | Succeeded | -- | Succeeded | Succeeded |
| frs | Succeeded | -- | Succeeded | Succeeded |
| deu | Succeeded | -- | Succeeded | Succeeded |
| dea | Succeeded | -- | Succeeded | Succeeded |
| des | Succeeded | -- | Succeeded | Succeeded |
| ell | Succeeded | -- | Succeeded | Succeeded |
| hun | Succeeded | -- | Succeeded | Succeeded |
| isl | Succeeded | -- | Succeeded | Succeeded |
| ita | Succeeded | -- | Succeeded | Succeeded |
| its | Succeeded | -- | Succeeded | Succeeded |
| kor | Succeeded | -- | Succeeded | Succeeded |
| nor | Succeeded | -- | Succeeded | Succeeded |
| non | Succeeded | -- | Succeeded | Succeeded |
| plk | Succeeded | -- | Succeeded | Succeeded |
| ptg | Succeeded | -- | Succeeded | Succeeded |
| ptb | Succeeded | -- | Succeeded | Succeeded |
| rus | Succeeded | -- | Succeeded | Succeeded |
| sky | Succeeded | -- | Succeeded | Succeeded |
| esp | Succeeded | -- | Succeeded | Succeeded |
| esm | Succeeded | -- | Succeeded | Succeeded |
| esn | Succeeded | -- | Succeeded | Succeeded |
| sve | Succeeded | -- | Succeeded | Succeeded |
| trk | Succeeded | -- | Succeeded | Succeeded |
C++Builder2006 の Access Violation というのは、locale オブジェクトの生成に失敗して例外を返した後、別のロケール名で再度生成しようとすると今度はAccess Violation を起こして落ちてしまった、というものです。これってなんかバグっぽいですね…。