パスワードを忘れた? アカウント作成
13454916 story
Windows

Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される 19

ストーリー by hylom
互換性問題が大変そうではある 部門より
あるAnonymous Coward曰く、

Windows Experience Blogの告知などでは一切言及されていないようだが、Windows 10 Redstone 4のInsider Previewでは、システムロケールの変更を行うダイアログに「ベータ:ワールドワイド言語サポートでUnicode UTF-8を使用」(英語では'Beta: Use Unicode UTF-8 for worldwide language support')というチェックボックスが追加されている。手もとにスナップショットが残っていた最古のRS4ビルド(17004)ですでに存在していたので、正確にいつ追加されたのかは不明。

このチェックボックスをチェックして再起動すると、Build 17035時点では以下のような動作が確認できた。

  • 圧縮 (zip形式) フォルダーにファイル名がUTF-8で保存されるようになった。これに伴い、シフトJISに含まれない文字を使ったファイル名も普通に保存できるようになった。
  • コマンドプロンプトのコードページが既定で65001(UTF-8)になった。このときのWindows標準コマンドのメッセージは英語になる。
  • メモ帳のテキストエンコーディングがUTF-8になった。なお「ANSI」を選んでもUTF-8で保存されるので、シフトJISでの保存はできなくなる模様。
  • GetACP()の戻り値も65001になる。WideCharToMultiByteなどでCP_ACPを指定したときも、UTF-8に変換される。

まあどうせ(シンボリックリンクや長いパスサポートみたいに)互換性に問題が出まくって正式版ではマニフェストか何かでオプトインが必要になるのだろうが、現状は控えめに言って最高である。

関連リンク

  • by osdn (47242) on 2017年11月14日 17時08分 (#3312136)

    Windows使ってると、一時的にロカール変更する方法がよくわからなくて時々困るので、
    もう英語UTF-8にしてくれるならそれでもいいかと思いますが、
    SJISの既存ファイルを開けなくなるのであれば困るかなぁ……。

    ここに返信
  • by Anonymous Coward on 2017年11月14日 17時31分 (#3312157)

    が追加されたのビルド16184だったから、結構前から計画はしてたんだろうなあ

    ここに返信
  • by Anonymous Coward on 2017年11月14日 17時22分 (#3312151)

    ircクライアントであるところのchocoaが非互換ですね
    もう20年も使ってるのか

    ここに返信
    • by Anonymous Coward

      15年半放置されてるのに最新のWindowsで動くってのはなんというか素晴らしいな。

    • by Anonymous Coward

      ircはチャンネルごとにエンコードの合意があって、chocoaはそれをシフトJISに変換してからwin32 apiに渡してるんだっけか
      ということはwin32がシフトJISを食わなくなるのかな

      • by Anonymous Coward

        Win32 APIは、APIの中で文字コードの判別なんかをしてるわけじゃないからな。
        文字列が関わる全てのAPIは Unicode(UTF-16) API と、ロケール依存API の二つが用意されてて、一般的にはコンパイル時にどちらを使うのか決める。
        # 実際には ほとんどのAPIが ロケール依存API を呼ぶと UTF-16 に変換されてから Unicode API を呼ぶラッパになってきてるけど)

        日本語ロケールは、Shift_JIS なのでロケール依存APIは、システム設定上のShift_JISだと決め討ちで処理する。
        システム設定を UTF-8 に変えたのに、Shift_JIS 渡しちゃったら入力を正しく処理できんだろうね。

        このへんの仕組みは、Win16 の時代から何もやり方変わってない。

  • by Anonymous Coward on 2017年11月14日 17時40分 (#3312165)

    / にしていただきたい!!!
    # 更にパスのセパレータを ; から : に!!

    ここに返信
    • by Anonymous Coward on 2017年11月14日 17時56分 (#3312174)

      >更にパスのセパレータを ; から : に!!
      やめてくださいしんでしまいます

    • by Anonymous Coward

      / にしていただきたい!!!

      0x5C (U+005C) のままで良いので表示を逆斜線にしてほしい。
      円記号は U+00A5 で。

      • by Anonymous Coward

        フォント変えるだけでいいんじゃね?

        #昔自作のbmpフォントでやったなぁ…。

      • by Anonymous Coward

        本当にこれ。なんとかしてくれ

    • by Anonymous Coward

      ファイルパスのセパレータを/にして環境変数のセパレータを:にするってことかね?
      まあファイル名に;を使えるのに環境変数を;で区切るのは悪手ですな。
      個人的には環境変数の区切りは?か|良いように思うが。パット見:よりも目立つので。

      • by Anonymous Coward

        >まあファイル名に;を使えるのに環境変数を;で区切るのは悪手ですな。

        UNIX 系はファイル名に : を使えるけど環境変数のセパレータも : だよ。
        というかファイル名に使えない文字が NUL (0x00) と '/' (0x2F) ぐらいしか無い。

        じゃあ : を含むパスを環境変数で指定する方法があるかというと…
        よく分からないけど無さそう。

    • by Anonymous Coward

      C:/でもC:\にアクセスできますけど?

      • by Anonymous Coward

        こっちがどんだけ/を使ったところで何らかのパスを返すWindows APIは容赦なく\で返してくるぞ

  • by Anonymous Coward on 2017年11月14日 18時45分 (#3312211)

    次はRTCをUTCにするのかな。現状Liveイメージでデュアルブートすると非常にうざいわけだが。あれはsystemdのせいか

    ここに返信
typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...