ノベルゲームを作ろうと思っているのですが、例えば"abcdeあいうえお"みたいな文章を1文字ずつ描画するとき、
英語と日本語ではバイト数が違うらしいので、それを判別して参照バイト数を進めなければならないらしいです。
調べた結果、SHIFT_JISの文章なら1バイト目で判別はできるらしいですが、
"今時SHIFT_JISでプログラム組んだりしないよね"みたいな記事もあったりして不安です。
他にも、環境によって3バイト文字があったりするらしいし、どうするのが正解か分かりません。
何か情報があれば教えて下さい。
ノベルゲームで台詞に英語と日本語が混ざっているときの判別
Re: ノベルゲームで台詞に英語と日本語が混ざっているときの判別
正解といったものはないですが、Windows環境でDXライブラリを利用するのであれば、
文字セットをUnicodeにしてUTF-16を利用するのが便利だとおもいます。
これなら英語でも日本語でも2バイトで統一されるので計算が楽です。
(一部の漢字は4バイトになるようですが)
文字セットをUnicodeにしてUTF-16を利用するのが便利だとおもいます。
これなら英語でも日本語でも2バイトで統一されるので計算が楽です。
(一部の漢字は4バイトになるようですが)
Re: ノベルゲームで台詞に英語と日本語が混ざっているときの判別
Shift_JISとUTF-8のバイト列を直接処理するものなら、わたしのブログでサンプルコードを公開しています。
ノベルゲーム風に一文字ずつ表示する:ISLeのビデオゲーム工房 ※Shift_JIS/DXライブラリ版/禁則および改行機能付き
ノベルゲーム風に一文字ずつ表示する【UTF-8/DXライブラリ版】:ISLeのビデオゲーム工房 ※禁則および改行機能付き
参照する際には、前後の記事も合わせて読んでください。
入力データとしてShift_JISを使うことはいまでも少なくはないと思いますけど。
ノベルゲーム風に一文字ずつ表示する:ISLeのビデオゲーム工房 ※Shift_JIS/DXライブラリ版/禁則および改行機能付き
ノベルゲーム風に一文字ずつ表示する【UTF-8/DXライブラリ版】:ISLeのビデオゲーム工房 ※禁則および改行機能付き
参照する際には、前後の記事も合わせて読んでください。
入力データとしてShift_JISを使うことはいまでも少なくはないと思いますけど。