Chcę napisać angielską transkrypcję w konsoli.
W debuggerze mam to səˈdʒest
ale w konsoli mam s??d?est
.
Jak rozwiązać ten problem? Dziękuję!
w górę
Klient do uzyskania transkrypcji
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;
}
}
I główna metoda
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();
}
}
2 odpowiedzi
Powinieneś:
- ustaw
OutputEncoding
naUnicode
:Console.OutputEncoding = Encoding.Unicode;
- uruchom swój program
- kliknij prawym przyciskiem myszy w oknie konsoli
- w oknie właściwości zmień czcionkę konsoli i ustaw ją na
Consolas
.
class Program {
static void Main( string[ ] args ) {
Console.OutputEncoding = Encoding.Unicode;
Console.WriteLine( "səˈdʒest" );
}
}
Wynik w konsoli to:
Czy to jest rosyjski?
Jeśli tak, spróbuj uruchomić chcp 866
w wierszu poleceń.
Odwołaj się do tego http:// www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/chcp.mspx?mfr=true
Ta odpowiedź sugeruje również, że należy wybrać konkretną (lub przynajmniej inną) czcionkę (nie jestem pewien, czy dotyczy to języka rosyjskiego, czy nie) Znaki Unicode w wierszu poleceń Windows - jak?
Podobne pytania
Powiązane pytania
Nowe pytania
c#
C # (wymawiane „patrz ostro”) jest językiem programowania wysokiego poziomu, statycznie typowanym, wieloparadygmatowym opracowanym przez firmę Microsoft. Kod C # zwykle jest przeznaczony dla rodziny narzędzi Microsoft .NET i czasów wykonywania, do których należą między innymi .NET Framework, .NET Core i Xamarin. Użyj tego tagu w przypadku pytań dotyczących kodu napisanego w C # lub C # formalnej specyfikacji.