.NET 控制台应用程序中的越南语字符 (UTF-8)

2024-02-28

我试图将 UTF-8 字符串(越南语)写入 C# 控制台,但没有成功。我在 Windows 7 上运行。

我尝试使用Encoding转换的类string to char[] to byte[]然后到String,但是没有帮助,字符串是直接从数据库输入的。

这是一些例子

Tôi tên là Đức, cuộc sống thật vui vẻ 你好

它不显示像这样的特殊字符Đ or ...相反它出现了?,比 Encoding 类差得多。

有谁可以尝试一下或者知道这个问题吗?


My code

static void Main(string[] args)
{
    XDataContext _new = new XDataContext();
    Console.OutputEncoding = Encoding.GetEncoding("UTF-8");
    string srcString = _new.Posts.First().TITLE;

    Console.WriteLine(srcString);
    // Convert the UTF-16 encoded source string to UTF-8 and ASCII.
    byte[] utf8String = Encoding.UTF8.GetBytes(srcString);
    byte[] asciiString = Encoding.ASCII.GetBytes(srcString);

    // Write the UTF-8 and ASCII encoded byte arrays. 
    Console.WriteLine("UTF-8  Bytes: {0}", BitConverter.ToString(utf8String));
    Console.WriteLine("ASCII  Bytes: {0}", BitConverter.ToString(asciiString));


    // Convert UTF-8 and ASCII encoded bytes back to UTF-16 encoded  
    // string and write.
    Console.WriteLine("UTF-8  Text : {0}", Encoding.UTF8.GetString(utf8String));
    Console.WriteLine("ASCII  Text : {0}", Encoding.ASCII.GetString(asciiString));

    Console.WriteLine(Encoding.UTF8.GetString(utf8String));
    Console.WriteLine(Encoding.ASCII.GetString(asciiString));
}

这是出色的输出

Nhà báo đi hội báo Xuân
UTF-8  Bytes: 4E-68-C3-A0-20-62-C3-A1-6F-20-C4-91-69-20-68-E1-BB-99-69-20-62-C3-
A1-6F-20-58-75-C3-A2-6E
ASCII  Bytes: 4E-68-3F-20-62-3F-6F-20-3F-69-20-68-3F-69-20-62-3F-6F-20-58-75-3F-
6E
UTF-8  Text : Nhà báo đi hội báo Xuân
ASCII  Text : Nh? b?o ?i h?i b?o Xu?n
Nhà báo đi hội báo Xuân
Nh? b?o ?i h?i b?o Xu?n


Press any key to continue . . .

class Program
{
    [DllImport("kernel32.dll")]
    static extern bool SetConsoleOutputCP(uint wCodePageID);

    static void Main(string[] args)
    {
        SetConsoleOutputCP(65001);
        Console.OutputEncoding = Encoding.UTF8;
        Console.WriteLine("tést, тест, τεστ, ←↑→↓∏∑√∞①②③④, Bài viết chọn lọc");
        Console.ReadLine();
    }
}

输出的屏幕截图(使用 Consolas 或具有上述所有字符的其他字体):

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 控制台应用程序中的越南语字符 (UTF-8) 的相关文章

随机推荐

  • 用于编辑 .fla 文件的免费 Flash IDE

    我们有一个 fla 文件 我们需要一个 IDE 来打开 fla 文件并调试操作脚本 我们尝试了 Flash Develop 开源 但该 IDE 无法打开 fla 文件 是否有任何其他免费 开源 IDE 我们可以用来打开和调试 fla 文件
  • 使用 JQuery Datepicker 仅显示月份

    我希望能够使用JQuery UI 日期选择器 http jqueryui com demos datepicker 允许用户选择特定月份 但无法选择该月中的特定日期 日期选择器上的前进和上一步按钮会将用户带到不同的位置years 而不是不同
  • 需要想法:选择表中的行

    我正在为客户开发一个网站 它需要一种特殊的方式来创建计算 在表中 我必须创建具有相同 End 的行组 由于一开始只有一行 90 日期为 2011 年 11 月 24 日 因此您可以忽略它 例如 我必须选择带有日期的行 2011 年 11 月
  • Xlib 截图调用

    看到问题后如何在Linux中截图 高fps 编程 https stackoverflow com questions 25162580 how to take screenshot high fps in linux programming
  • 是否可以在 SASS 或 LESS 中将一个类或标签别名为另一个类或标签?

    我正在尝试使用 Less 或可能使用 Sass 使我的 bootstrap 2 1 标记更加语义化 考虑 Bootstrap 标准导航栏的以下标记
  • STL自定义分配器来管理不同的内存空间

    我想使用 STL 自定义分配器类的不同实例来管理不同的内存空间 然后能够为 STL 容器指定分配器实例 以便每个容器仅从其分配的内存空间中提取 但我不知道如何才能做到这一点 我了解如何将分配器类型传递到 STL 容器的模板参数中 但我想要类
  • 何时在 Node js 中使用 eventEmitter?

    我正在学习 Node js 中的新概念 即事件 但我找不到应该在哪里使用它 我想要任何真实的场景 但我找不到任何关于此的文章或博客 var events require events var eventEmitter new events
  • Haskell 使用什么类型的范围?

    我试图弄清楚 Haskell 是否使用动态或静态作用域 我意识到 例如 如果您定义 let x 10 然后定义函数 let square x x x 您有 2 个不同的 x 这是否意味着它是动态作用域的 如果不是 它使用什么范围 为什么 另
  • 如何将 json 字符串数据类型列转换为 hive 中的映射数据类型列?

    我需要从所有行中获取所有唯一的键值 每行都有不同的键和值请找到上面的专栏图片 例如 一排看起来像 START TIME 1549002807568 PARSING QUERY FORMED 1549002807586 CUBES WITH
  • Angular 2 路由 - 隐藏 URL

    我知道你可以在路由时隐藏 URLthis router navigate Pages skipLocationChange true 但是当我使用window open Pages 它有网址 有没有办法在使用时隐藏URLwindow ope
  • jquery ajax 中 async:false 和 async:true 有什么区别?

    jquery ajax中有一个参数 ajax async true 将值设置为有什么区别true and false You set async to false 当您需要在浏览器传递给其他代码之前完成 ajax 请求时
  • Python 推送器 AWS Lambda

    使用 AWS Lambda 将推送通知发送到 Python 中的 Pusher 应用程序 当我将 Pusher 及其所有依赖项安装到一个目录并压缩到 Lambda 时 我运行了一个简单的测试并收到此错误 No module named nd
  • 运行jsp文件时类转换异常

    我正在尝试运行我的 jsp 文件之一 但遇到类转换异常 org apache catalina core DefaultInstanceManager 无法转换为 org apache tomcat InstanceManager 我已将所
  • protobuf 具有继承性?

    是否可以使用protobuf http code google com p protobuf 与继承的类 我想做这样的事情 class Expr class AddExpr Expr class CallFunc Expr class Fu
  • Ionic 3:使用蓝牙打印机打印图像

    我目前正在努力使用我们的 Ionic3 应用程序 我似乎不知道如何使用 BT 打印机和蓝牙串行插件打印图像 打印文字就好了 我们正在使用此文档测试 RPP02N BU 打印机 由我的前同事找到 驱动程序命令文档 https www spar
  • cmake 中“不允许源内构建”

    我是 cmake 的新手 我只用它在我的 ubuntu linux 上安装 opencv 这是我运行的命令 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX home jinha O
  • 我的服务器端 PHP 在 reCaptcha 之后仍然遭到黑客攻击(数百封垃圾邮件)

    我之前在 StackOverflow 上提出的问题是 有人每隔几个小时向我发送数百封垃圾邮件 现在 我在服务器端修复了脚本 但第二天早上我仍然收到 30 封电子邮件之类的东西 我的托管公司给了我一个 FTP 的新密码 并将我的索引文件移动到
  • 在 ie8 浏览器中使用 jquery-2.0.3:对象不支持此属性或方法

    我用的是jquery 它在火狐浏览器中运行良好 但是当我用 ie8 打开它时出现同样的错误 对象不支持此属性或方法 834线 我禁用这一行并在这一行中发现相同的错误 836 3316 我制作示例代码并进行测试 它从不显示我的警报
  • 无法将本地 git 导入 Eclipse 来创建新项目(抛出错误“连接 Git 团队提供商失败”)

    我在本地计算机上创建了一个 git 存储库 git init git add TestGit java git commit m Start 然后我进入 Eclipse 并选择从该 Git 存储库导入并创建一个新项目 在向导步骤中 它识别出
  • .NET 控制台应用程序中的越南语字符 (UTF-8)

    我试图将 UTF 8 字符串 越南语 写入 C 控制台 但没有成功 我在 Windows 7 上运行 我尝试使用Encoding转换的类string to char to byte 然后到String 但是没有帮助 字符串是直接从数据库输入