-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
config 配下のファイルを UTF-8 (BOM付) に変換。一部コメント末尾文字は ASCII に変換。 #249
Conversation
デバッグ版アプリのタイトルバー文字列の変更に当たると思います。 仕様変更と認識しますが、合ってますか? |
デベロッパ的には仕様変更になります。 |
この PR は基本的に文字コード変換に対する PR なので、仕様変更を含むなら別 PR にするのがいいですが、その手間を省略するのであれば、仕様変更を行うことがわかる別チケットを作って、 #249 で対応したことを記載すればいいと思います。 |
うーん、小さな変更であれば対応を混ぜ込んでしまうのは自分はアリと思っている(他の人のPRでそういう部分があっても支障無ければ approve もしちゃう)のですが、混ざるとけっこう困ること多かったりしますか? |
後でどんな修正をしたのかを追跡するのが |
自分は「匙加減」の問題だと思っています。変更影響が大きければ当然分けます。 |
仕様変更については意図が確認できれば良いです。 追加で、問題が出るの真意を確認しときたいです。 ぼくの認識ではL"(デバッグ版)"は国際的に見ても問題ない文字列です。 考慮漏らしてる可能性は高いので、どんな問題が起きるか知りたいです。 |
こういう文字列をちゃんと残したい場合にはリソース側に文字列定義を逃がしてリソース経由で文字列構築することになると思います。 |
ちょっと実験してみたいです。 確かワイド文字列リテラルは変換かけられてから埋め込まれるものだった気がします。sjisだとsjis基準でユニコード化された文字列がutf16LEで埋め込まれます。utf8も一種のマルチバイトなので似たような変換がかかって正しく埋め込まれるような気がします。 |
コンパイラがリテラルを扱う方法は berryzplus さんの言う通りになる気がします(実験結果待ってます)。なので問題は異なるエンコーディング(2種類の「ANSI」エンコーディング)のファイルを #include した(された)ときに起こるのかな、と想像していました。 なんとなくリテラルに日本語が使えないというような認識を持たないために、どこに問題があるのか知識を共有したいです。 |
試してみた結果ですが、問題起きませんでした。 なぜこんなに時間がかかったかというと、 |
rc.exeには、ファイルの途中でエンコーディング解釈を変える命令があるので、 |
すみません爆睡してました。検証ありがとうございます。 |
#250 で文字列表現を変更せずに、ヘッダのファイルエンコーディングを変更する対応を行いました。これが問題ないようであれば、本 PR での文字列表現差し替え対応は取り下げる対応を行います。 |
cd sakura_core/config nkf --overwrite --oc=UTF-8-BOM *.cpp nkf --overwrite --oc=UTF-8-BOM *.h
#250 の対応が完了しました。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです。
config 配下のファイルを UTF-8 (BOM付) に変換。一部コメント末尾文字は ASCII に変換。
文字コード変換
該当フォルダ内の文字コードをすべて UTF-8 (BOM付) に変換しました。
追加対応
ヘッダ内コメントの末尾文字がマルチバイトだと問題がることがあるので、末尾文字を ASCII 文字に差し替えています。
確認方法
WinMerge で変更前と変更後を比較すると、文字コードおよびコメント末尾文字以外の変更が無いことが確認できます。
関連 Issues
ソースコードのUnicode化 #112