トップページ > 記事閲覧
DrawStringで文字化けする
名前:オーダン 日時: 2026/02/12 11:41

お世話になっております。 FileRead_getsでテキストファイルから文字列を読み込んで、 DrawStringで表示する際に、なぜか文字化けする場合があって、 その原因が全く分からないため解決方法などが、ありましたらお教えいただきたく思います。 https://x.com/oxxdan/status/2021744249784738277 の右上のテキストがように左下のようになります。 ソースコードは以下のような感じです //テキスト読み込み char strText[50][100]; int iRow = 0; int iFileHandle = FileRead_open("件のテキスト.txt"); for (short i = 0; i < 50; i++) { if (FileRead_gets(strText[iRow], MSGLEN, iFileHandle) <= 0) break; iRow++; } FileRead_close(iFileHandle); //テキスト表示 for (int i = 0; i < iRow; i++) { DrawString(60, 60 + i * 16, strText[i], GetColor(255, 255, 255)); } テキストによっては正常に表示され、正常な奴と異常な奴を比べても何が悪いのかわかりませんでした。 どちらのテキストもUTF-8です。 このような場合どのようにすれば解決できますでしょうか? DXLibのバージョンはVer 3.24eで最新です。 以上よろしくお願いいたします。
メンテ

Page: 1 |

Re: DrawStringで文字化けする ( No.1 )
名前:管理人 日時:2026/02/13 21:47

恐らくテキストの文字コードタイプ自動判定がうまく判定できていないのだと思います UTF-8 で固定でしたら FileRead_open 後に FileRead_set_format という関数で 文字コードタイプを指定することで確実に UTF-8 として読み込むことができますので、よろしければお試しください m(_ _)m // ファイルを開く int FileHandle = FileRead_open( "TextFile.txt" ); // UTF-8 として読み込むように指定する FileRead_set_format( FileHandle, DX_CHARCODEFORMAT_UTF8 ); // 文字列を読み込む char String[ 1024 ]; FileRead_gets( String, 1024, FileHandle );
メンテ
Re: DrawStringで文字化けする ( No.2 )
名前:オーダン 日時:2026/02/14 00:04

管理人様 ご回答ありがとうございます。その通りにしたら解決しました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存