任务单 #46506

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

开放日期: 2023-01-10 20:00 最后更新: 2023-01-16 00:19

报告人:
属主:
类型:
状态:
关闭
组件:
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Fixed
文件:
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 で書くとそうなるから」あるいは「内部的に変換しなくていいから」という理由であっているでしょうか?

任务单历史 (3/6 Histories)

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

ドキュメントを追加しました(日本語のみです)。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
评论

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

2023-01-13 01:08 Updated by: zmatsuo
  • 组件 Update from (无) to Document
评论

TODO

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

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

2023-01-16 00:19 Updated by: zmatsuo
  • 状态 Update from 开启 to 关闭
  • 处理结果 Update from to Fixed
评论

クローズします。

Attachment File List

No attachments

编辑

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