【发布时间】:2020-09-06 18:20:48
【问题描述】:
我知道字符串以 Unicode 格式存储。我还听说字符串总是 Little Endian Unicode,即使系统是 Big Endian。我的问题是这样的:
如果系统也是 Big Endian,字符串是否以 Big Endian Unicode 表示?
顺便说一句,在写入需要为 Little Endian Unicode 的文件时,我使用它来提高性能。
【问题讨论】:
-
你能澄清一下你想知道的吗??
-
我的问题是字符串在内部存储为 Big Endian Unicode IF SYSTEM 也是 big endian?
-
这听起来像XY problem:您为什么对.Net 如何存储字符串感兴趣(我假设在内存中)?除非您打算使用原始内存和不安全的代码,否则这不是您应该担心的事情。还是只是单纯的(好的)好奇心?
-
我不知道 .NET 内部使用什么字节顺序来存储字符串。无论如何,对于你的情况,我认为你不应该知道它来加速你的代码,除非你测量并意识到你有一个真实而有意义的性能问题。你最终应该使用不安全的代码,在任何情况下我都怀疑你将能够击败 .Net UnicodeEncoding 类性能
-
如果您想通过匹配编码来实现性能加速,您必须对 .NET 字符串有深入的了解,并且您必须已经花费数小时来优化其他所有内容。如果没有,您可以通过优化其他内容获得更多收益。
标签: c# .net string unicode encoding