Correção de erro de apresentação de coreano e outros estrangeiros de caracteres conjuntos em c# / Visual Studio

Eu sei que o título do post é cruel, mas eu sabia que não menos a descrever o problema. Mas agora vamos para a coisa. No contexto do desenvolvimento da minha nuvem, me deparei com o Downloader, nomeadamente sobre o seguinte problema. Caráteres coreanos eram retratados apenas como caixa desencapada embora eles foram exibidos corretamente no código fonte. Quem agora maravilha onde arranjaste os caracteres coreanos em um teclado alemão aqui só deve olhar para o Google traduzir. (A imagem seguinte ilustra o problema novamente. Para ampliar a imagem clique no.)

Deturpação de caracteres coreanos

Na net eu encontrei muito poucas soluções. E quase todas eram bastante sub ideal na minha opinião. Na maioria das vezes, ou seja da seguinte forma propõe-se:

Recomenda-se o método de chamada SetCompatibleTextRenderingDefault() com o verdadeiro parâmetro. Este textos usando o GDI + gráfica baseada são processados, o que às vezes do. NET Framework 1. x foi usado.
No entanto, alguns “desvantagens” estão aqui. Ao espaçamento do método gráfico são calculados de modo diferente, para que um layout existente pode “desmoronar” e por outro lado, nem todos os controles são processados corretamente. (Baseada em GDI TextRenderer classe foi introduzido iniciando com o .net 2.0).

Baseado em nosso aplicativo de teste que teria esta aparência:

No Program.cs, podemos ativar o DefaultTextRendering.

classe estática programa {[STAThread] static void main () {Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(true); Application. Run (novo Form1()); } }}

E no aplicativo, temos o seguinte resultado:
Setcompatibletextrendering(true) de caractere coreano
Como você pode ver, apenas o rótulo será exibido corretamente. O GroupBox processa os personagens continua incorretamente.

O outro lado

Um outro e minha opinião é a forma sobre como alterar a propriedade de fonte/fonte para uma solução melhor. Existem algumas fontes que contêm muito mais conjuntos de caracteres, como a fonte padrão inteiro. Um é para fazer o exemplo Arial Unicode MS, que é fornecida, mas também no Mac OS x com o Microsoft Office e também está disponível separadamente.
Agora define essa fonte para todos os seus controles, obter os seguintes resultados:

namespace KoreanCharacters {classe parcial pública Form1: form {/ / privado […] void Form1_Load (object sender, EventArgs e) {isso.}} Font = new Font (“Arial Unicode MS”, 8.25f); foreach (controle con em GetAllControls(this)) se (con. Fonte! = null) con. Font = new Font (“Arial Unicode MS”, 8.25f); Este. Texto = “안녕하세요”; Label1. Texto = “안녕하세요”; groupBox1.Text = “안녕하세요”; } lista estática privada GetAllControls (controle controlBase) {nova listade controles de lista = (); foreach (controle con em controlBase.Controls) {comandos}. Add(con); Listar subcontroles GetAllControls(con); = controles. AddRange(subControls); } retornar controles; } }}

03 coreano caracteres arial unicode ms coreano e outros estrangeiros de conjuntos de caracteres em c# / Visual Studio exibir erro fix

Como você pode ver, agora o texto do GroupBox é exibido corretamente. Diga todos os controles que são exibidos corretamente, com exceção do texto do formulário. É por isso que eu descrevi essa possibilidade ainda mais acima apenas como “melhor” e não uma solução “perfeita”. Eu não posso explicar também por que os títulos das formas incorretamente serão processados.

Espero que eu poderia de uma ou ajudar os outros de você. Deixaste-me antes deste problema? E como você isso resolvido? Sabe talvez uma solução melhor? Agradeço cada comentário!

Muitos cumprimentos,
Raffi

Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de.E-mail • Google + • Facebook • Twitter


0SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail