Ticket #46506

設定ファイル保存時の文字コード

Open Date: 2023-01-10 20:00 Last Update: 2023-01-16 00:19

Reporter:
Owner:
Type:
Status:
Closed
Component:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

むかしこのような意見が書かれていたのを思い出しました。

https://twitter.com/sempreff/status/1535543032145408001

teraterm5 、Save setup で iniファイル新規保存すると BOM付UTF-16 になることに気付きました。ほぼ ASCII なので、ディスクの無駄な印象です。

確認ですが、BOM付UTF-16 にしたのは「WritePrivateProfileStringW で書くとそうなるから」あるいは「内部的に変換しなくていいから」という理由であっているでしょうか?

Ticket History (3/6 Histories)

2023-01-10 20:00 Updated by: nmaya
  • New Ticket "設定ファイル保存時の文字コード" created
2023-01-12 00:02 Updated by: zmatsuo
Comment

ドキュメントを追加しました(日本語のみです)。r10476

テストしていたらメモリリークしていた箇所を見つけたため直しました。r10475

UnicodeではないANSIのiniファイルでもおおむねokなのですが、 "😄"などを保存したときに"?"に 化けてしまうのでUnicode版iniファイルのほうが安全です。

UTF-16エンコードだとスペースの無駄なのはUTF-16の仕様だから、 UTF-16を使っている(UTF-8版iniファイルではない)のはOSの仕様だから、 という感じですね。

非推奨APIというのもありますが iniファイルでUTF-16が使えるのはあまり知られていなくて、 Microsoftのドキュメントからはわかりにくいです。

将来(最近?)はUTF-8BOMなiniファイルを扱えるかもしれません。

それと、lng ファイルを収めた lang フォルダが 「lang」 と 「lang_utf16le」の2つあるのは Unicode版iniファイルが扱えないWindows 9xのためですね。

2023-01-12 00:08 Updated by: nmaya
Comment

了解しました。説明ありがとうございます。

2023-01-13 01:08 Updated by: zmatsuo
  • Component Update from (None) to Document
Comment

TODO

  • 英訳
2023-01-14 00:57 Updated by: None
Comment

英語版を入れました。r10479です。

2023-01-16 00:19 Updated by: zmatsuo
  • Status Update from Open to Closed
  • Resolution Update from None to Fixed
Comment

クローズします。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login