トップページ > 記事閲覧
文字コードについて
名前:GEMA 日時: 2016/02/24 11:12

いつもお世話になっております。 質問なんですが、文字コードについて、 西ヨーロッパ言語 - iso-8859-1は対応できるでしょうか? よろしくお願いします。
メンテ

Page: 1 |

Re: 文字コードについて ( No.1 )
名前:yumetodo 日時:2016/02/25 01:40

文字コードを変換したいということならiconvなりWin32APIを使えばいいと思いますが・・・ MultiByteToWideCharを使っている例 channel9.msdn.com/Forums/TechOff/184894-WIN32-Text-Encoding-APIs/ebf597d0472b441e819e9dea013dba85 C++らしく変換している例 qiita.com/yumetodo/items/453d14eff41b805d8fc4
メンテ
Re: 文字コードについて ( No.2 )
名前:管理人 日時:2016/02/28 02:59

対応しましたのでよろしければこちらをダウンロードしてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 上記のバージョンで、DxLib_Init を呼び出す前の箇所に以下の記述を増やしてください SetUseCharSet( DX_CHARSET_ISO_8859_1 ) ; SetUseCharCodeFormat( DX_CHARCODEFORMAT_ISO_8859_1 ) ; これでDXライブラリ内の全ての文字列処理が ISO-8859-1 になります ただ、ファイルパスなどの指定も ISO-8859-1 になってしまい日本語文字が含まれる ファイルパスなどを使うことができなくなってしまうので、もし DrawString などの文字列描画にだけ ISO-8859-1 を使用したいということでしたら CreateFontToHandle の第5引数に DX_CHARSET_ISO_8859_1 を 渡してフォントハンドルを作成して、更に作成されたフォントハンドルに対して SetFontCharCodeFormatToHandle で使用する文字コードを ISO-8859-1 にしてください // 例 int FontHandle ; FontHandle = CreateFontToHandle( "Arial", 32, 10, DX_FONTTYPE_ANTIALIASING_EDGE_4X4, DX_CHARSET_ISO_8859_1 ) ; SetFontCharCodeFormatToHandle( DX_CHARCODEFORMAT_ISO_8859_1, FontHandle ) ;
メンテ
Re: 文字コードについて ( No.3 )
名前:GEMA 日時:2016/02/29 14:32

ご回答ありがとう御座います。 対応しましたが、フランス語はまだ表示不完全となっています。 ちょっと調べると、なんとISO/IEC 8859-1はフランス語に完全対応ではない、 完全対応したのはISO/IEC 8859-15みたいですOrz。 大変申し訳ございませんが、ISO/IEC 8859-15にも対応してお願いいただけませんか?
メンテ
Re: 文字コードについて ( No.4 )
名前:管理人 日時:2016/03/02 01:37

分かりました、ISO/IEC 8895-15 に対応してみたいと思います ところで 『ISO/IEC 8895-15 形式の文字列を DrawString で正しく描画できれば良い』 という認識でよろしいでしょうか? それとも 『DrawString だけではなく LoadGraph などのファイルパス指定なども全て ISO/IEC 8895-15 で扱える必要がある』 と考える必要がありますでしょうか?
メンテ
Re: 文字コードについて ( No.5 )
名前:GEMA 日時:2016/03/02 19:11

『ISO/IEC 8895-15 形式の文字列を DrawString で正しく描画できれば良い』 で大丈夫です。 お手数かけて申し訳ございません。
メンテ
Re: 文字コードについて ( No.6 )
名前:管理人 日時:2016/03/07 01:49

ご返答ありがとうございます ISO/IEC 8895-15 で追加された文字の描画にも対応してみましたので、 よろしければこちらをダウンロードして下さい m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 前回と同じく、CreateFontToHandle で作成する際の引数と、作成後に ISO/IEC 8895-15 を使用する指定をすると対応したフォントハンドルとなります ( 似ていますが DX_CHARSET_ISO_IEC_8859_15 と DX_CHARCODEFORMAT_ISO_IEC_8859_15 は 異なる識別子ですので注意して下さい ) // 例 int FontHandle ; FontHandle = CreateFontToHandle( "Arial", 32, 10, DX_FONTTYPE_ANTIALIASING_EDGE_4X4, DX_CHARSET_ISO_IEC_8859_15 ) ; SetFontCharCodeFormatToHandle( DX_CHARCODEFORMAT_ISO_IEC_8859_15, FontHandle ) ; よろしければお試し下さい
メンテ

Page: 1 |

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

   クッキー保存