Skip to content
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

dlg 配下のいくつかのファイルを UTF-8 (BOM付) に単純変換 #94

Merged
merged 2 commits into from
Jun 14, 2018

Conversation

kobake
Copy link
Member

@kobake kobake commented Jun 11, 2018

dlg フォルダ内で単純変換して支障のないものだけを対象に変換を行いました。

手順

cd sakura_core/dlg
nkf --overwrite --oc=UTF-8-BOM *.cpp
nkf --overwrite --oc=UTF-8-BOM *.h
git checkout CDlgPluginOption.cpp
git chcekout CDlgFavorite.cpp
git checkout CDlgCtrlCode.cpp
git checkout CDlgOpenFile.cpp

5b47e20 の行削除は手動対応。

変換対象外のファイル

  • CDlgPluginOption.cpp … _T("\u2611") が気になったので変換保留
  • CDlgFavorite.cpp … _T("▼") は別途対応が必要と思われるので変換保留
  • CDlgCtrlCode.cpp … _T("・") は別途対応が必要と思われるので変換保留
  • CDlgOpenFile.cpp … _T("変換なし"), // ダミー が気になったので変換保留 (コメントにはダミーとあるけど本当にダミーかどうか精査が必要)

cd sakura_core/dlg
nkf --overwrite --oc=UTF-8-BOM *.cpp
nkf --overwrite --oc=UTF-8-BOM *.h
git checkout CDlgPluginOption.cpp
git chcekout CDlgFavorite.cpp
git checkout CDlgCtrlCode.cpp
git checkout CDlgOpenFile.cpp
@m-tmatma
Copy link
Member

プロジェクトの文字コード指定は問題にならないですか?

@kobake
Copy link
Member Author

kobake commented Jun 11, 2018

プロジェクトの文字コード指定の影響受けないところだけ変更してます。

ファイルのエンコーディングを SJIS -> UTF-8 に変更しましたが、今回の変更内容に含まれる文字列定数は全部 ANSI 文字列なので影響無しです。

@berryzplus
Copy link
Contributor

berryzplus commented Jun 11, 2018

すみません。何のために変換するかついていけてないので教えてください →自己解決しました〜。

除外理由に挙がってるものは
全角文字が入ってるのは不安だからやめとく
と読めました。

sjisで文字化けしないすべての文字は正しくutf8に変換できます。
あと、¥uXXXXで指定した文字はエンコードの影響を受けません。

utf8のファイルに書かれた char* リテラルは、
ロケールに従ってANSI(=sjis)に変換されて埋め込まれる仕様のようです。

さっき確認してみたんですが、vs2017でconsoleプロジェクトを新規作成すると、cppの文字コードはUTF16になるようでした。日本語の場合、utf8よりもutf16の方がサイズ的に有利だった気がします。
あ、c++コードでコメントなしだと utf8 のが圧倒的に有利ですが 😄

@berryzplus
Copy link
Contributor

検証したファイルあげときます。
[ConsoleApplication1.zip](https://github.com/sakura-editor/sakura/files/2089697/ConsoleApplication1.zip

@kobake
Copy link
Member Author

kobake commented Jun 12, 2018

sjisで文字化けしないすべての文字は正しくutf8に変換できます。
あと、¥uXXXXで指定した文字はエンコードの影響を受けません。

\uXXXX については知識としては把握しているのですが実際に試したことがなかったので
試すまでもなく修正影響が出ないことが自明なファイルだけ変換しました。

さっき確認してみたんですが、vs2017でconsoleプロジェクトを新規作成すると、cppの文字コードはUTF16になるようでした。日本語の場合、utf8よりもutf16の方がサイズ的に有利だった気がします。

なるほど。しかし現代の標準ってほぼ UTF-8 な気がするんですよね…。git diff も UTF16 だと binary 扱いになっちゃいますし。

サンプルとしてあげていただいた zip 内ソースコードは UTF-8 になっていましたが、これは手動変換したものですか?

@kobake
Copy link
Member Author

kobake commented Jun 12, 2018

除外した4ファイルについては別件として対応することを考えています

@berryzplus
Copy link
Contributor

あっちこっちバラバラしててすみません。

  • GitHubで誤判定されることがあるから文字コード変えます。
    → 了解です。githubで扱いやすくだからutf8なのも了解です。

@berryzplus
Copy link
Contributor

懸賞で使ったzipは手作業でutf8に変換しました。

@berryzplus
Copy link
Contributor

¥uXXXXについて、char* リテラルの一部として書かれている場合、ビルド時ロケールによっては化けるかも。Wcharリテラルなら化けないです。

@berryzplus
Copy link
Contributor

MinGWは文字コード検出してくれなかった気がするので、変換除外で保留するとmakefileに手を入れないといけない気がしてきました。

@kobake
Copy link
Member Author

kobake commented Jun 13, 2018

変換除外したものは別件として処理することを考えています。
変換内容が混在しているとレビューが難しくなるため今回は影響のないことが自明なもののみのPRとさせてください。

@kobake
Copy link
Member Author

kobake commented Jun 13, 2018

これマージされたら他のファイル群も順次 UTF-8 にしていきます

@kobake
Copy link
Member Author

kobake commented Jun 14, 2018

これって今何かの待ちになってますか?

@berryzplus
Copy link
Contributor

何も問題ないと思ってますが、中身何も見れてません。文字コードと空白以外で差分がなければokで良いです。iPhone だと判断厳しいですw

Copy link
Member

@m-tmatma m-tmatma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

文字コード、コメント内の句読点、 5b47e20 で削除された部分以外の差分がないことを確認しました。

@m-tmatma m-tmatma added this to the next release milestone Jun 14, 2018
@m-tmatma m-tmatma added the refactoring リファクタリング 【ChangeLog除外】 label Jun 14, 2018
@m-tmatma m-tmatma merged commit 8f9531b into sakura-editor:master Jun 14, 2018
@kobake kobake deleted the dlg-utf8 branch June 14, 2018 17:54
@ds14050 ds14050 added the refactoring リファクタリング 【ChangeLog除外】 label Sep 18, 2018
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 11, 2019
 dlg 配下のいくつかのファイルを UTF-8 (BOM付) に単純変換
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactoring リファクタリング 【ChangeLog除外】
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants