Windows10 バージョン 2004 以降の NLS に大きな変更が入ったようです

Windows10 に限らずですが OS には様々な機能が組み込まれています。
今回話題に取り上げる NLS ( National Language Support ) もその一つで、日本語の文字処理をつかさどる部分となります。

日本語の処理というと IME が真っ先に思い浮かびますが、 NLS はアプリケーションが日本語を取り扱う際に呼び出されるものとなります。わかりやすいのは日本語のソートは比較などの処理です。

で、この NLS ですが、 Windows10 2004 から NLS 6.3 というバージョンになり、挙動が変わったことで Office 周りで問題が発生しているようなのです。

https://social.msdn.microsoft.com/Forums/ja-JP/4e6223e2-34d0-4a5f-bb61-109bc28040b6?WT.mc_id=WDIT-MVP-5002496

このフォーラムで取り上げられた内容は Access に半角濁音のフォームがあった場合にファイルが壊れるというかなり危険な内容となっています。

どうしてそうなるのか。というと記載にあるようにもともと全角カナと半角カナを同じものとして認識するような処理があったのですが、 Windows10 2004 と 20H2 においては全半角のカナを区別して扱うようになった。ということのようです。

この動作は一時的なバグとして取り扱っているようで、現状の路線としては 2021年 以降のバージョンで修正リリースを行うとなっています。

f:id:mohessu:20201115003246p:plain

一時しのぎの対処法として、 NLS をひとつ前のバージョンに戻す方法が記されていました。

f:id:mohessu:20201114232651p:plain

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Sorting\Versions

の既定の値を「 0006020F 」に変更することで 1909 と同様の動作となり、問題を回避することができるとのこと。

2004 、20H2 では「 00060305 」が規定値となるみたいです。

ちなみに手元の Insider Preview Build 20251 では以下のように 「 00060403 」 となっていました。ここで取り上げられていた Access の問題は起きないようだったのですでに修正が進んでいるのかもしれません。確認条件を間違えているだけかもしれませんが汗

f:id:mohessu:20201115003114p:plain

Access 以外で全半角の区別の話といえば SQL Server を思い出します。

SQL Server をクライアントの Windows10 で動かすときは開発時くらいですが、 Windows 照合順序などはこの辺りを参照していそうな気もしますよね。

利用の依存がどれだけあるのかわかりにくいのですが、今回の話はもう少し広く見ていく必要があるかもしれません。

音楽:home stay