bar*_*lop 3 .net c# unicode console-application
我在cmd中添加了一种字体.(DejaVu Sans Mono)这个 techrepublic链接有一个注册表黑客为cmd添加一个字体,人们可以为某些字体做这样的.
该字体有一个unicode非ascii字形,我可以将该unicode非ascii字形粘贴到cmd提示符中
但我从stdin读取的C#程序没有输出它



这是我的C#程序及其输出
我的程序从stdin中读取一行并写入.
问题在于,当它写入时,它会写一个问号
该计划甚至有这条线
Console.OutputEncoding = System.Text.Encoding.Unicode;
但即使是那条线也没有让它输出角色
C:\blah>echo ?
?
C:\blah>type b1.cs
using System;
class Program
{
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.Unicode;
string s;
s = Console.ReadLine();
Console.WriteLine(s);
}
}
C:\blah>b1
?
?
C:\blah>
Run Code Online (Sandbox Code Playgroud)
我知道自己很好,因为more有同样的问题..但是echo可以做到,所以我应该能让我的程序做到这一点
C:\blah>echo ?
?
C:\blah>more
?
?
^C
C:\blah>
Run Code Online (Sandbox Code Playgroud)
添加截图re cyril的评论

添加截图重新评论
带有一行Console.WriteLine("?") 写入的AC#程序 ? 保存为unicode以保留该字符,并进行编译.但鉴于它打印了一个?,似乎腐败发生在输出上.我不能评论腐败是否也发生在stdin上.但看起来它出现在输出上.
小智 5
您还需要设置输入编码.
Console.InputEncoding = System.Text.Encoding.Unicode;
Run Code Online (Sandbox Code Playgroud)
更新!
using System;
class Program
{
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.Unicode;
Console.InputEncoding = System.Text.Encoding.Unicode;
string s;
s = Console.ReadLine();
Console.WriteLine(s);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |