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
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈