スポンサーサイト

一定期間更新がないため広告を表示しています

| スポンサードリンク | | - | - | pookmark |
Entry: main  << >>
Unicodeについて
前回の続きってことで
Web上でいろいろ調べました。

何故にUnicodeにするか?
自分的結論は、国際化のため、文字化けのため??
たぶん、国際化にするため。
説明しているサイトがあんまり無かった。orz

気を取り直して、Unicodeを調べていたら、分ったこと。
1.boost::regex
2.std::locale::global(std::locale("japanese"));
3.std::wcout.imbue(std::locale("japanese");

この3つについて分りました。
1番目のboost::regexは、boost libraryの正規表現ライブラリです。
Unicodeにする訳を調べてて、飽きたので、επιστημη氏のHPのC++Documentの正規表現ライブラリ 'Boost Regex++' の使い方の下にあるソースをコピペして、できるかやってみた。
→サイト:正規表現ライブラリ 'Boost Regex++' の使い方

ビルド・・・・・・・・・・・・
エラーの大量発生。。。
エラーの原因は、boost::reg_expression
テンプレート引数が少ないそうです。
それで、Let's BoostのページのRegexの項を見たのです。
→サイト:letsboost::regex
下の方にreg_expressionbasic_regexに変えれば動くと書いてあったので、書き換える。。

ビルド・・・・・・・・・・・
エラー。これまた大量に
今度は、const char [19] から boost::basic_regexに変換できないそうです。
これについてWebで調べた結果、=演算子が駄目な模様。
初期化時に()を使えば解決する。ようなので書き直す。

ビルド・・・・・・・・・・・
ビルド正常終了。
やっと、できたので、実行。。。

実行結果
Regex++ can NOT support multibyte regex
AShift_JIS
URL = <a href='http://www.roguewave.com:80/index.html'>here</a>
regex = (([a-z]+):)?//([^:/]+)(:([0-9]+))?/([a-zA-Z.0-9]*)
scheme :http
host :www.roguewave.com
port :80
path :index.html
URL = <a href='http://www.roguewave.com:80/index.html'>here</a>
regex = (([a-z]+):)?//([^:/]+)(:([0-9]+))?/([a-zA-Z.0-9]*)
scheme :http
host :www.roguewave.com
port :80
path :index.html
続行するには何かキーを押してください . . .


ん?実行結果が違うぞい。
そこで、初めてソースを見る。

main関数の最初に書いてあったのが、
std::locale::global(std::locale("japanese"));
と。これは、始めて見た。つーか、意味わかんね
とりあえずコメントアウト(ぇ

ビルド・・・・実行
今度は、OKかと思いきや、最後の関数test_wide_grep()が失敗している。
日本語でのregex_grepが失敗している模様。

とりあえず、原因が分らんので、
std::locale::global(std::locale("japanese"));
について調べることにした。

調べていたら、詳しく解説しているページを発見。
ワイド文字列の罠
std::locale::global(std::locale("japanese"));
はwchar_tに対応してない模様。。。
regex_grepが失敗していた原因は、どうやらstd::wcoutでの表示だったらしい。
そこで
std::wcout.imbue(std::locale("japanese"));
を使えばできそう・・・・
ってことでmain()で使う。
ビルド・・・・・・実行。
実行結果
実行結果
日本語も検索できたので完璧っす。

そうそう、boost::unit_testも試してみました。
それは、また今度書こうかと思っています
| NANA | 15:50 | comments(2) | trackbacks(0) | pookmark |
スポンサーサイト
| スポンサードリンク | 15:50 | - | - | pookmark |
Comment
Unicodeなどの文字コード関係ってめんどくさいよね〜
Posted by: はb |at: 2006/11/02 2:26 AM
コメントありがとうございます。

文字コード関係はC言語ではあまり気にしなかったので、今回初めて面倒ってわかりましたよ
Posted by: 管理人@NANA |at: 2006/11/03 2:41 AM








Trackback

Calendar

     12
3456789
10111213141516
17181920212223
24252627282930
<< September 2017 >>

LINK

ヤプル言

Arc::Blog

Search


WWW を検索 scathach.jugemを検索
Google

Recommend

Recommend

Recommend

Recommend

Recommend

Recommend

応援


Entry

Comment

Trackback

Category

LINK POLICY

当サイトはリンクフリーです。
URL⇒http://scathach.jugem.jp/
リンク報告は必要ありません。
ですけど報告してくれるとありがたいです
メールはこちら
直接記事と関係ないTBなどは、削除しています。
ご了承ください

COUNTER

Others

無料ブログ作成サービス JUGEM

Feed

Sponsored Links