トップページ > 記事閲覧
Unicode文字セットを使用する場合について
名前:sereparu 日時: 2018/05/13 14:11

いつもお世話になっております。 DXライブラリでUnicode文字セットを使用する場合について、いくつか確認させてください。 海外OSで日本語を文字化けさせない方法を過去ログで読みました。 自分も文字化け対策をしようと思い、下記参照元で紹介されている方法で Unicode文字セットを使用するようソースコードを修正しました。 参照元:ttp://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&no=3248 とりあえずコンパイルは通り、マルチバイト文字セットを使用していた以前の状態と同じように 日本語文字を問題なく表示させることができました。 ただ、以下の点が気になりました。 ・ソースコード自体の文字コードはShift-JISでも問題ないでしょうか? ・DrawVStringToHandleで縦書きフォント(フォント名に@がついているもの)を使用して 縦書き表示するなどの日本語的なものも、海外OSでも問題なく表示できるでしょうか? (フォントは「@MS ゴシック」を使用しています) 海外OSが手元になく、正しく日本語が表示されているか確認できないので 少し心配になり質問させていただいた次第です。 文字コードについてはあまり詳しくないので、見当違いな質問でしたらすみません。 開発環境は以下の通りです。 OS:Windows7(64bit) Home Premium SP1 統合開発環境:Visual Studio Community 2017 コンパイラ:Visual C++ 2017 ライブラリ:DXライブラリVer3.19b よろしくお願い致します。
メンテ

Page: 1 |

Re: Unicode文字セットを使用する場合について ( No.1 )
名前:管理人 日時:2018/05/13 20:45

> ・ソースコード自体の文字コードはShift-JISでも問題ないでしょうか? はい、問題ありません 海外OSの環境で VisualStudio を使ってコンパイルする場合はおそらく問題になると思いますが、 日本語OSの環境で VisualStudio を使ってコンパイルすると文字コードが Shift-JIS でも問題ありません 海外OSの環境の VisualStudio でも正常にコンパイルできるようなソースコードとされたい場合は ソースコードの文字コードを UTF-8 や Unicode 形式で保存するようにしてください m(_ _)m > ・DrawVStringToHandleで縦書きフォント(フォント名に@がついているもの)を使用して > 縦書き表示するなどの日本語的なものも、海外OSでも問題なく表示できるでしょうか? > (フォントは「@MS ゴシック」を使用しています) 海外OSに縦書き用フォントがインストールされている場合は問題なく表示されると思いますが、 私も試したことがないのでわかりません・・・
メンテ
Re: Unicode文字セットを使用する場合について ( No.2 )
名前:sereparu(解決) 日時:2018/05/13 21:04

管理人さん いつも迅速なご回答、誠にありがとうございます。 ソースコード自体の文字コードはコンパイルする環境によって変える必要があるんですね。 日本語OSでコンパイルするので、Shift-JISのままで問題ないと分かって安心しました。 縦書きフォントはインストールされているか不安なので、あまり使わない方が良さそうですね。 念のためにDrawVStringToHandleは使わないようにして 横書きの文字列を1文字ずつ分割して縦に順番に表示していくような機能を 自前で作ることを考えてみます。 Unicodeを使うのは初めてなので、色々と悩んでいましたが これでUnicode化の作業に集中できます。 本当にありがとうございました。
メンテ
Re: Unicode文字セットを使用する場合について ( No.3 )
名前:yumetodo 日時:2018/05/14 09:10

え、ちょっとまった、Shift-JISのままではだめです。誤った情報です。 管理人さんが言いたいのは多分CP932に含まれる文字で日本語locale下のVSにおいては、ということだと思いますが、 CP932に含まれない文字については当たり前ですがソースコード上でその文字を表現できないので - エスケープシーケンスで書く - ソースコードの文字コードをUTF-8にする が考えられますが、どう考えてもソースコードの文字コードをUTF-8にする一択です。 なおBOMをつけておかないとVSがUTF-8と認識できないので正確にはUTF-8 with BOMですね。 なおソースコードの文字コードがいくらUTF-8でも文字/文字列リテラルのprefixが - L : 処理系定義ののUnicode - u : UTF-16 - U : UTF-32 のいずれかがついていないとコンパイル時にUnicodeな文字列として埋め込まれません。
メンテ
Re: Unicode文字セットを使用する場合について ( No.4 )
名前:sereparu(解決) 日時:2018/05/14 21:57

yumetodoさん ご回答ありがとうございます。 現在はCP932に含まれない文字を使用してないので、そのままで良いと思ったのですが 試しにVisualStudio上で、ソースコードにUnicodeの環境依存文字を書くと 現在のコードページでは保存できないため、Unicodeで保存し直すか、という警告が出てきて 「はい」を選択すると、BOM付きのUTF-8で保存されました。 今後、特殊な文字を使うこともあるかもしれないので ソースコードもBOM付きのUTF-8で保存しようと思います。 大変ご丁寧な説明ありがとうございました。
メンテ

Page: 1 |

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

   クッキー保存