c# - 如何在控制台中正确书写英文转录?

标签 c# console console-application transcription

我想在控制台中编写英文转录。

在调试器中我有这个səˈdʒest 但在控制台中我有 s??d?est

如何解决这个问题?谢谢!

向上

获取转录的客户端

   class TranslationFormattedResult
    {
        public string Transcription { get; set; }
        public List<string> TranslatedWordList = new List<string>();
    }
    class TranslatorClient
    {
        private TranslationServiceSoapClient _client = new TranslationServiceSoapClient("TranslationServiceSoap");

       public async Task<TranslationFormattedResult> GetTranslationAsync(string word)
        {
            var result = await _client.GetTranslationAsync("er", "General",
                word,
                lang: "ru",
                limit: 3000,
                useAutoDetect: true,
                key: "",
                ts: "MainSite",
                tid: "");
            var translationResult = new TranslationFormattedResult {Transcription = await GetTranscriptionAsync(result)};
            return translationResult;
        }

        private async Task<string> GetTranscriptionAsync(TranslationResult result)
        {
            var task = new Task<string>(() =>
                                            {
                                                string pr = null;
                                                string pattern = "\\[.+\\]";
                                                var match = Regex.Match(result.result, pattern);
                                                if(match.Success)
                                                {
                                                    pr = match.Value.Trim('[', ']');
                                                }
                                                return pr;
                                            });
            task.Start();
            return await task;
        }
    }

以及主要方法

class Program
            {
                static void Main(string[] args)
                {
//this works
                    var client = new TranslatorClient();            
             var ts = client.GetTranslationAsync("suggest")
                 .ContinueWith(r =>
                                   {
                                       var transcription = r.Result.Transcription;
                                       Console.OutputEncoding = Encoding.Unicode;
                                       Console.WriteLine(transcription);
                                       Console.WriteLine("press any key");
                                       Console.ReadKey();
                                   }
                     );
            ts.Wait();
    }
    }

text visualizer

最佳答案

你应该:

  1. OutputEncoding设置为Unicode:Console.OutputEncoding = Encoding.Unicode;
  2. 运行你的程序
  3. 右键单击控制台窗口
  4. 在属性窗口中更改控制台字体并将其设置为 Consolas

class Program {
    static void Main( string[ ] args ) {
        Console.OutputEncoding = Encoding.Unicode;
        Console.WriteLine( "səˈdʒest" );
    }
}

控制台的结果是:

enter image description here

关于c# - 如何在控制台中正确书写英文转录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652797/

相关文章:

c# - C++ 比 C# 快多少?

linux - 如何在控制台中读取 pulseaudio 客户端的音量级别

c# - 在内部控制台应用程序中嵌入密码

.net - 从 .NET 应用程序执行 shell 命令

c++ - 如何初始化和加载MCR

c - 从 C 中的控制台输出中获取先前打印的行

c# - Process.Start 中的 ID 有时匹配,有时不匹配

c# - 和弦有什么用?

c# - 互操作将字符串从 C# 发送到 C++

javascript - 在异步函数之外等待不会在控制台中抛出错误