为什么 Strings.Asc('š') 和 Strings.AscW('š') return 有不同的值?

Why do Strings.Asc('š') and Strings.AscW('š') return different values?

Strings.Asc('š') = 154
Strings.AscW('š') = 353

我正在将一个旧的解决方案从 netframework 移植到 netstandard。 Strings.Asc 不存在于 visual basic 包中,唯一的选项是 Strings.AscW。从表面上看,它们在功能上似乎是相同的,但是它们return 不同的解决方案

为什么? 我想要 Strings.AscW 的相同结果 (154),是否有适用于 .netstandard 的类似解决方案?

我猜你将不得不通过显式编码走很长的路,并构建一个 char 数组,因为似乎没有解码单个 char 的方法s.

int result = Encoding.GetEncoding(1252).GetBytes(new char[] {'š'})[0];