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 应用程序的问题