私はC#で書かれたdllを持っています。メソッドの1つはパラメーターを取りますstring txt
。dllは、従来のaspページから呼び出されています。呼び出し時に、テキストには、テンキーで130を押したまま入力するか、を押したままé
押したときに得られる文字が含まれています。ALTALT-GRe
DrawStringメソッドはそれを間違って出力しています。文字セット/フォントの問題があることはわかっていますが、問題を回避する方法がわかりません。
英国のキーボードとArialフォントを使用したローカリゼーションで得られるのは、大文字のAで、その上にチルダがあり、その後に小文字のcが付いています。
テキストを入力する個人は、任意のキーボードレイアウトを使用している可能性があり、PCでローカライズされている可能性がありますが、すべてのユーザーがWebページから入力します。
互換性を持たせたり、変換したりするにはどうすればよいですか?
関連するコードは次のとおりです。
Bitmap image = new Bitmap(strFilePath);
Graphics m_graphics;
m_graphics = Graphics.FromImage(image);
Font fnt = new Font("Arial", 12.0f);
StringFormat strFormatter = new StringFormat();
SolidBrush txtBrush = new SolidBrush(Color.FromArgb(127, Color.FromArgb(int.Parse("AB12CD", NumberStyles.HexNumber))));
m_graphics.DrawString("é", fnt, txtBrush, new Point(200, 200), strFormatter);