通常検索置換で大小文字同一視するとU+00e0-U+00fcがおかしい
- ページ: BugReport
- 投稿者: Moca
- 優先順位: 普通
- 状態: 完了
- カテゴリー:
- 投稿日: 2010-09-24 (金) 18:37:31
- バージョン: Unicode版 rev.1825
メッセージ
通常検索・置換で大文字小文字を区別しないと
U+00e0-U+00fcとU+0020が同一視されます。
単語単位・正規表現オプションでの検索は問題ありません。
またサロゲートペアなどにも対応していません。
MS CRT80-100のtowupperの動作によるものです。
回避策:
正規表現を有効にして検索・置換してください。
- ANSIは無関係。Unicodeはおそらく全リビジョンです。 -- Moca
- Unicode版rev1826で対策を入れました。 -- ryoji
- Microsoft Connect へのバグ報告のほうにコメントと回避策を投稿しておきました。CRTやMFC/ATLの他の関数にも影響が及んでいるので全部を広域的に回避するにはホットパッチでも当てるしかなさそうです -- ryoji
- マジレスすると、towupper関数のせいじゃないです。使い方間違ってるから。towupper関数はis_asciiかつislowerな文字を変換するためのものですから。どちらかというと独自実装のstricmp的関数に問題があるのでは? -- ばぼ?
- JISX3010:2003のtowupperにはiswlowerの下りは書いてあるけど「そうでない場合、その実引数を変換せずにそのまま返す」と書かれてますが。入力がASCII範囲しか想定してない普通のtouper/lowerと混同されてるのでは。 -- Moca