Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR の目的
こういうことできるぜぃっ! の情報共有が目的です。
カテゴリ
PR の背景
Azure Pilelines(無償版)でWindows Server 2016のサポートが終わるそうで、
その対策ディスカッションに「とある構想」を書き込みました。
#1752 (reply in thread)
「#1104 の改善」とはどういうことなのか?を共有しておきたいと思います。
あとまぁ、いまのまま Win10 の icu.dll を使うように変更すると #1726 の実装が死ぬので「どうしようか?」を考えたいのも背景の一つです。
PR のメリット
PR のデメリット (トレードオフとかあれば)
仕様・動作説明
ICU4CをWindows 10組み込みのものに差し替えてみました。
実装してみて気付いたんですが、問題点が3つあります。
・・・ので、DllHandlerの機構を外すのはマズそうです。
グループポリシーで古いFeatureに固定してない限り、Win10には icu.dll が入っています。
順番的に ICU4C を先にみる実装なので uchardet.dll は使われなくなってしまいます。
ICU4Cには文字コード変換関数も実装されているので「使える想定なのに何故使わない?」になる気がします。
修正範囲が増えると変更点が見辛くなるので、
MinGWビルド向けの修正を含めていません。
MinGWビルドはコケますが、気にしないでください。
PR の影響範囲
このPRで触っているのは「文字コード検出」ですが、
「文字コード変換」にも影響を与える提案をしています。
テスト内容
テスト1
手順
関連 issue, PR
参考資料