C# richtextbox的编码似乎不适合显示音素

C# richtextbox的编码似乎不适合显示音素,c#,character-encoding,phonetics,phoneme,C#,Character Encoding,Phonetics,Phoneme,我对c语言编程很陌生,但我正在尝试将纯文本转换为语音表示。我使用PhonemeReached事件转换纯文本,并通过e.Phoneme调用它们。(见下面的代码) //初始化TTS合成器并提取音素 SpeechSynthesizer synth=新的SpeechSynthesizer(); //调用PhonemeReachedEvent synth.PhonemeReached+=新事件处理程序(synth\u PhonemeReached); //说出richTextBox1中的文本 synth.

我对c语言编程很陌生,但我正在尝试将纯文本转换为语音表示。我使用PhonemeReached事件转换纯文本,并通过e.Phoneme调用它们。(见下面的代码)

//初始化TTS合成器并提取音素
SpeechSynthesizer synth=新的SpeechSynthesizer();
//调用PhonemeReachedEvent
synth.PhonemeReached+=新事件处理程序(synth\u PhonemeReached);
//说出richTextBox1中的文本
synth.SpeakAsync(richTextBox1.Text);
//事件
私有void synth_PhonemeReached(对象发送方,PhonemeReachedEventArgs e)
{ 
字符串输出=e.音素;
//将音素写入richTextBox2
richTextBox2.AppendText(string.Format(输出));
}
我在richtextbox中返回e.Phoneme的结果,但它只写jibberish(见下图)。这感觉像是一个编码问题,我想知道你对如何解决这个问题的看法

更新:如评论中所述,Jalkar设法使其在win7上工作。当我在Windows7上测试我的应用程序时,我得到了一个类似音素的字符串。但是,当解码为ASCII时,它表示jibberish。(到目前为止,我还没有掌握如何将其转换为通用手机)。 其次,正如Hans Passant所说,截图中jibberish的ASCII是美国手机的索引(参见他的链接)。 然而,奇怪的是,Win7和Win8都提供了完全不同的结果

在下面的屏幕截图中,显示了Win7上的结果:

在此屏幕截图中,Win8上的结果如下: imgur.com/crAR5HV


如果有人知道如何在c#中使用微软的IPA到UPS,我很乐意听到。

在e.音素之后有什么东西吗?比如e.音素可以尝试使用“经典”文本框,如example@DaveGordon在e音素之后没有什么。应该有吗?@Jalkar我已经复制了这个代码,但是我仍然得到奇怪的图标而不是拼音symbols@Nimuin您是否尝试更改RichTextBox字体和/或应用程序的当前区域性?我尝试了msdn示例,它对我很有用(Win7、Winforms、法国文化、无字体更改)
//Initialize Synthesizer for TTS and extracting Phonemes 
SpeechSynthesizer synth = new SpeechSynthesizer(); 

//Calling the PhonemeReachedEvent
synth.PhonemeReached += new EventHandler <PhonemeReachedEventArgs>(synth_PhonemeReached);

//Speaking the text from richTextBox1 
synth.SpeakAsync(richTextBox1.Text); 

//The Event 
private void synth_PhonemeReached(object sender, PhonemeReachedEventArgs e) 
  { 
    string output = e.Phoneme; 

    //Writing the Phoneme to the richTextBox2
    richTextBox2.AppendText(string.Format(output)); 
  }