トップページ > 記事閲覧
UTF8 での使用について
名前:Anonymous.exe 日時: 2020/08/12 20:44

こんにちは。 現在 Visual Studio 2019 にて DxLib を用いて開発をしています。 Windowsで動くゲームを作成しており、 UTF8 で処理するように ttps://dxlib.xsrv.jp/lecture/Android/Android_CharCode.html を参考にプログラムを組もうと思っています。 この場合、プロジェクトの設定の「文字セット」の項目は「マルチ バイト文字セットを使用する」 に変更しなければなりませんか? また、FileRead_getc で一文字を読み込むにはどのような処理が必要になりますか? よろしくお願いします。
メンテ

Page: 1 |

Re: UTF8 での使用について ( No.1 )
名前:yumetodo 日時:2020/08/12 22:54

> また、FileRead_getc で一文字を読み込むにはどのような処理が必要になりますか? そもそも「一文字」をどう定義するかという問題があります。 Unicodeな現代を生きる私達にとって、「一文字」の定義は4通り存在します。 - byte - code units - code points - grapheme cluster 詳しくは C++標準化委員会、ついに文字とは何かを理解する: char8_t ttps://qiita.com/yumetodo/items/54e1a8230dbf513ea85b FileRead_getcではbyte単位の「一文字」を取得できますが、大抵の場合でこれでは困るでしょう。 つまるところ、その場合FileRead_getcは使い物にならないということです。 FileRead_getsだったかと思いますがそういう複数byte取れるものを使うことが必要になります。 というかそもそも一文字ずつファイルから読み込みたい需要 #とは という思いです。そういう設計自体をやめるべきではないでしょうか。 一度全部読み込んで、後でGetCharBytesを使うなり、icuのコードポイントごとにたどっていけるイテレータを使うなりしてアクセスしていくのがいいと思います。
メンテ
Re: UTF8 での使用について ( No.2 )
名前:管理人 日時:2020/08/12 23:22

> この場合、プロジェクトの設定の「文字セット」の項目は「マルチ バイト文字セットを使用する」 > に変更しなければなりませんか? はい、UTF8 を使用する場合は「マルチ バイト文字セットを使用する」の設定にする必要があります > また、FileRead_getc で一文字を読み込むにはどのような処理が必要になりますか? yumetodoさんも仰られていますが、こちらは標準関数の fgetc を模して実装した関数で、 読み込む文字が全て1byteの場合は問題ないのですが、1文字が 2byteだったり 3byteだったりする UTF8 では使い物にならないと思います 同じく yumetodoさんも仰られていますが FileRead_gets で行単位で読み込むか、ファイルを丸ごと メモリに全て読み込んだ後、GetCharBytes で 1文字のbyte数を確認しながら文字の処理を行うようにしてください m(_ _)m <関数リファレンス GetCharBytes> https://dxlib.xsrv.jp/function/dxfunc_other.html#R22N2
メンテ
Re: UTF8 での使用について ( No.3 )
名前:Anonymous.exe (解決) 日時:2020/08/13 08:35

ありがとうございます。 GetCharBytes の存在をすっかり忘れていました...
メンテ

Page: 1 |

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

   クッキー保存