TextInfo.ListSeparator 值已更改

在所有操作系统上,不同区域性的默认 TextInfo.ListSeparator 值均已更改。

更改描述

在 .NET 5.0.0 中,作为从 NLS 切换到 ICU 库的一部分,不同区域性的默认 TextInfo.ListSeparator 值在 Windows 上已更改。 从 International Components for Unicode (ICU) 获得的十进制分隔符值用作 ListSeparator 值。 在 Linux 和 macOS 上,TextInfo.ListSeparator 值没有变化,也就是说,它们继续使用十进制分隔符值。

对于使用 .NET 5.0.1 及更高版本的所有操作系统,TextInfo.ListSeparator 的值等于从 NLS 获得的值。 对于 Windows,这意味着这些值等于 .NET Framework 和 .NET Core 1.0-3.1 中的值。 对于 Linux 和 macOS,TextInfo.ListSeparator 值现在与 Windows 的 TextInfo.ListSeparator 值匹配。

下表总结了对 TextInfo.ListSeparator 值所做的更改。

.NET framework
.NET Core 1.0-3.1
.NET 5 .NET 5.0.1
Windows 从 NLS 获取 ICU 中的十进制分隔符。
可切换回 NLS。
等于 NLS
Linux 和 macOS ICU 中的十进制分隔符 ICU 中的十进制分隔符 等于 NLS

引入的版本

5.0.1

更改原因

开发人员报告说,他们在分析逗号分隔值 (CSV) 文件时使用 TextInfo.ListSeparator 属性,而新的 TextInfo.ListSeparator 值破坏了该分析。

如果代码依赖于先前的十进制分隔符值,则可以对所需的 TextInfo.ListSeparator 值进行硬编码。

受影响的 API