unicode 大写在 .NET 6 中工作的先决条件是啥?

Posted

技术标签:

【中文标题】unicode 大写在 .NET 6 中工作的先决条件是啥?【英文标题】:What are the prerequisites for unicode uppercasing to work in .NET6?unicode 大写在 .NET 6 中工作的先决条件是什么? 【发布时间】:2021-06-22 16:49:58 【问题描述】:

代码

"ჾ".ToUpper()

应该在 .NET 5 中返回 "Ჾ"。这实际上是在 this jsfiddle 中发生的事情。

但是,当我尝试使其工作时,在 Linux 上的 .NET6 Preview 3 中,它不起作用。相反,我得到:

"ჾ"

很明显,出了点问题,但我对 .NET 的了解还不够多,无法知道从哪里开始寻找。所以我想如果我知道 ToUpper 正常工作所需的依赖项是什么,我可以开始寻找那里。

那么,String.ToUpper() 对 Unicode 字符串的正确操作需要哪些依赖项/配置/库/等?

【问题讨论】:

如果您针对 .NET5 而不是 6 进行编译,它是否在您的 Linux 环境中正常工作? 试试passing a CultureInfo。也许你的 Linux 文化有问题。 @magnetron 在 jsfiddle 中,它似乎与 Invariant CultureInfo dotnetfiddle.net/6z3vhZ 配合得很好 确认它在使用微软容器的 .NET6 preview 3 中的 Linux 上运行良好:docker run -it --rm mcr.microsoft.com/dotnet/sdk:6.0.100-preview.3 @j... 我在我的 devcontainer 中使用 .NET6 preview 3,它使用了从 MS devcontainer 复制的部分:github.com/darklang/dark/blob/main/Dockerfile 【参考方案1】:

这里重要的似乎是 libicu - 它不适用于 libicu60,但适用于 libicu66。

【讨论】:

以上是关于unicode 大写在 .NET 6 中工作的先决条件是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 JBOSS 6 EAP 中部署一个在 JBOSS AS 5 中工作的简单 WAR 应用程序的问题

在 Chrome 中工作的 SVG 上 CSS 动画的 transform-origin,而不是 FF

创建在 IE 中工作的文件上传

$ 究竟是如何在 NASM 中工作的?

关于管道如何在 Bash 中工作的简单解释是啥?

.NET 6.0 Web api 中的 CORS