c# 对字符串使用 UTF-8 还是 UTF-16?

问题描述 投票:0回答:1

更准确地说,最新版本的c#(c# 12 (.NET 8.0)),它对字符串使用UTF-8还是UTF-16?

我很困惑,因为: https://learn.microsoft.com/en-us/dotnet/standard/base-types/character-encoding-introduction

字符串在逻辑上是 16 位值的序列,每个值都是 char 结构的实例。

这里: https://learn.microsoft.com/en-us/dotnet/core/compatibility/globalization/5.0/icu-globalization-api

.NET 5 及更高版本在 Windows 10 May 2019 Update 或更高版本上运行时,使用 International Components for Unicode (ICU) 库来实现全球化功能。

如果在 Linux 上运行怎么办?我必须提供 ICU 库吗? 或者是这样的说法,c# 仍然使用 16 位值并删除所有拉丁语言的零并将其映射到 ICU?

c# utf-8 utf-16
1个回答
0
投票

它似乎是UTF16:

目前没有有效的语法来执行此操作,因为 C# 代表了所有 使用 UTF16 编码的字符串。

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-11.0/utf8-string-literals

© www.soinside.com 2019 - 2024. All rights reserved.