C++Builder 全角→半角 変換 ========================= Unicodeの全角文字を半角文字に変換するようにしたので備忘録を残す。 コーディング例 ------------- Windows APIの `LCMapString` 関数を使って変換する。 Char buff[130]; PChar s: String text = L"変換する文字列"; int len = text.Length(); // DWORD flags = LCMAP_FULLWIDTH; //全角文字に変換 DWORD flags = LCMAP_HALFWIDTH; //半角文字に変換 // DWORD flags = LCMAP_HIRAGANA; //ひらがなに変換 // DWORD flags = LCMAP_KATAKANA; //カタカナに変換 const int size = len + 1; if (size < 128) { // バッファに入る時だけ変換する s = buff; LCMapString(GetUserDefaultLCID(), flags, text.c_str(), size, (LPWSTR)s, // 変換した文字列の格納先 size); s[len] = 0; } else { s = text.c_str(); // バッファに入らないので変換しない } ShowMessage(s); /* for debug */ 参考 ---- 1. [[https://www.gesource.jp/programming/bcb/39.html|全角・半角・ひらがな・カタカナの変換]] 2. [[http://www1.plala.or.jp/yuuto/plalaboard/message/files/htoz.html]]