You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取UCS-2小端编码的字符串/整数标识传入Encoding.GetEncoding()

获取UCS-2小端编码的标识用于Encoding.GetEncoding()

刚好对.NET里的编码标识这块比较熟,给你梳理清楚UCS-2小端对应的可用标识,直接就能用到Encoding.GetEncoding()里:

  • 字符串名称:你有几个清晰的选项可选:
    • "unicode":这是.NET里对应UCS-2小端(UTF-16LE)的标准名称,Encoding.GetEncoding("unicode")会直接返回目标编码实例。
    • "utf-16le":更明确的名称,直接指定了小端字节序,可读性更强,推荐在配置里用这个,避免歧义。
    • "utf-16":在.NET里,utf-16默认也是小端,但如果要严格匹配UCS-2小端,用前两个更稳妥。
  • 整数代码页ID:对应的官方代码页编号是1200,所以Encoding.GetEncoding(1200)也能得到完全一样的编码实例,适合配置里存数字的场景。

实际使用示例

假设你从配置文件里读取了编码标识,直接拿来构造StreamReader就行:

// 从配置读取编码名称(比如配置项值是"utf-16le")
string encodingConfig = "utf-16le";
using (var reader = new StreamReader("targetfile.txt", Encoding.GetEncoding(encodingConfig)))
{
    string fileContent = reader.ReadToEnd();
    // 后续处理逻辑
}

// 或者用代码页ID(配置项值是"1200")
int codePage = 1200;
using (var reader = new StreamReader("targetfile.txt", Encoding.GetEncoding(codePage)))
{
    string fileContent = reader.ReadToEnd();
    // 后续处理逻辑
}

额外说明

  • UCS-2其实是UTF-16的子集,仅覆盖基本多语言平面(BMP)的字符。在.NET里,Encoding.GetEncoding(1200)返回的实例对BMP外的字符会抛出异常,刚好符合严格UCS-2的需求。
  • 如果遇到UCS-2大端的文件,对应的标识是代码页1201或者字符串名称"utf-16be",别搞混了。

内容的提问来源于stack exchange,提问作者mishan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:47:54