本文可協助您解決 .NET Framework 4 時所發生的問題。x 應用程式會比較日文字串。
適用於: Windows 10 版本 2004、Windows 10 版本 20H2、Windows 10 版本 21H1、Windows 10 版本 21H2、Windows 10 版本 22H2
徵兆
某些日文半角和全角片假名和平假名字符,具有同音標記的字元不會解譯為相同的字元。 當您使用 CompareInfo.IndexOf
方法和 IgnoreKanaType
或 IgnoreWidth
選項 CompareOptions
進行比較時,這些字元會因為排序規則中發生問題而評估為不同。
原因
從 2004 版開始,Windows 10 已將國家語言支援 (NLS) 版本更新為 6.3,並新增了阿拉伯文和希伯來文的支援。 此新增會影響使用 NLS 排序日文字串比較的規則,以便比較會產生不同的結果。
因應措施
警告
如果您未正確修改登錄,可能會發生嚴重問題。 這些問題可能會導致您必須重新安裝作業系統,或甚至防止您的電腦啟動。 Microsoft 不保證可以解決這些問題。 在修改之前,備份登錄以供還原,以免發生問題。 修改登錄的風險請自負。
因應措施 1
將 NLS 排序規則還原為 6.2 版。 此版本用於 Windows 10 版本 1909 和舊版。 當您必須共享系統之間的數據時,請考慮一致地套用因應措施。 如果您使用此因應措施,請執行足夠的測試和評估,以減輕多個系統上不同排序規則版本所造成的問題。
若要使用此因應措施,請遵循下列步驟:
以系統管理員身分開啟命令提示字元視窗(cmd.exe)。
執行以下命令:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Sorting\Versions /ve /d 0006020F /f
重新啟動電腦或進程以查看完整效果。
重要
如果您尚未在計算機上安裝KB4586853或更新版本更新,在此登錄專案中設定無效的值可能會防止計算機啟動。
因應措施 2
將 NLS 排序規則設定為 6.4 版。 此版本用於 Windows 11。 若要這樣做,您必須套用KB5014023或更新版本,並將版本升級至 1741 版或更新版本。 在此情況下,已套用版本 22H2,而且不需要更新。
針對 Windows 10 版本 2004、20H2、21H1 和 21H2 套用KB5014023或更新版本更新。
以系統管理員身分開啟 [命令提示字元] 視窗 (cmd.exe)。
執行以下命令:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Sorting\Versions /ve /d 00060403 /f
重新啟動電腦或進程以查看完整效果。