LoginSignup
0
0

More than 5 years have passed since last update.

VS2017 VC++での文字コードについて

Last updated at Posted at 2018-08-23

Windowsアプリではビルド設定でUnicode/ANSIが設定可能
VS 2017ではUnicodeはUTF-16、ANSIはshift_jisのことぽい。
Linux系はUTF-8が主流なのでこの辺りはどちらかのシステムで吸収する必要がある。

CStringはビルド環境で変わってしまうため
また意図的に文字コードを意識しなければならないときは
CStringW/CStringAとかstd::wstring/std::stringなどを使う。

変換には
Windows APIのMultiByteToWideChar/WideCharToMultiByteで行う。

昔はコードページIDが定義されてた気がするけど
今はどのヘッダーファイルなのかCP_UTF8/CP_UTF7しかみえない。

https://docs.microsoft.com/en-us/windows/desktop/intl/code-page-identifiers
ここに一覧がある。日本語関係で必要なもの

12000

CodePageId .NETでの名称 意味
932 shift_jis ANSI/OEM Japanese; Japanese (Shift-JIS)
12000 utf-32 Unicode UTF-32, little endian byte order
12001 utf-32BE Unicode UTF-32, big endian byte order
20932 EUC-JP Japanese (JIS 0208-1990 and 0212-1990)
51932 euc-jp EUC Japanese
50220 iso-2022-jp ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS)
50221 csISO2022JP ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana)
50222 iso-2022-jp ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0