ロゴ:EPSON
ロゴ:よくあるご質問(FAQ)

製品別
質問別

URLをクリップボードにコピーしました
シェア用URL:https://faq2.epson.jp/web/Detail.aspx?id=31273
  FAQ番号:31273
プログラム開発中に全角文字の印字だけ文字が化ける
True Type フォントを使った印字をするプログラムの開発中、全角文字だけ文字化けを起こします。原因はなんですか?
 
 

EPSON Advanced Printer Driver シリーズ がインストールされている環境で、「MS ゴシック」などの True Type フォントを使用した印字をおこなったとき、全角文字だけが文字化けを起こしたときは、フォントの文字セット ( Charset ) の値を確認してください。

EPSON Advanced Printer Driver シリーズ のデバイスフォント「Japanese」や、True Typeフォント「MS ゴシック」などの日本語フォントは、文字セットの値が SHIFTJIS_CHARSET ( 128 ) になります。
対して、EPSON Advanced Printer Driver シリーズ のデバイスフォント「control」、「FontA」や、True Typeフォント「Courier New」などの欧文フォントは、文字セットの値が ANSI_CHARSET ( 0 ) になります。

日本語フォントと欧文フォントどちらも使用する印刷をおこなうときは、フォントにあった文字セットの値を指定しない場合、文字化けを起こします。
開発環境など、文字セットの値を指定して印刷をおこなうような環境では、ご注意ください。

現象を再現するプログラムコード例 1

// Visual C++ 6.0
dc.StartDoc(&di);
//フォント情報の作成, 明示的に間違えた文字セットを指定
CFont	font, *old;
font.CreateFont(
   20,                        // フォントの高さ
   0,                         // 平均文字幅
   0,                         // 文字送り方向の角度
   0,                         // ベースラインの角度
   FW_NORMAL,                 // フォントの太さ
   FALSE,                     // 斜体にするかどうか
   FALSE,                     // 下線を付けるかどうか
   0,                         // 取り消し線を付けるかどうか
   ANSI_CHARSET,              // 文字セットの識別子
   OUT_DEFAULT_PRECIS,        // 出力精度
   CLIP_DEFAULT_PRECIS,       // クリッピング精度
   DEFAULT_QUALITY,           // 出力品質
   DEFAULT_PITCH | FF_SWISS,  // ピッチとファミリ
   _T("MS ゴシック"));      // フォント名
old = dc.SelectObject(&font);
dc.TextOut(10,10, "アイウエオ ABC123"); //全角文字が文字化けする。
dc.SelectObject(old);
font.DeleteObject();
dc.EndPage();

現象を再現するプログラムコード例 2

'// Visual Basic 6.0
'//全角文字の印字
Printer.Font.Charset = 128
Printer.Font.Name = "MS ゴシック"
Printer.Print "MS ゴシックの印字 1"
'//デバイスフォントによる用紙カット
Printer.Font.Charset = 0
Printer.Font.Size = 9.5
Printer.Font.Name = "Control"
Printer.Print "P"
'//文字化けを起こす全角文字の印字
Printer.Font.Name = "MS ゴシック"
Printer.Print "MS ゴシックの印字 2"
'//欧文フォントと日本語フォント両方を使用した場合、
'//このように文字セットの指定を忘れる場合がある。
モバイルプリンター TM-P20,TM-P60II
PC一体型プリンター TM-T70II-DT,TM-T88V-DT
TMシリーズ TM-C100,TM-H5000II,TM-H6000,TM-H6000II,TM-H6000III,TM-H6000IV,TM-J2000,TM-J2100,TM-L60II,TM-L90 オートカッターモデル,TM-L90 ピーラーモデル,TM-T20,TM-T20II,TM-T285,TM-T70,TM-T70II,TM-T88II,TM-T88III,TM-T88IIIX (ARCX搭載),TM-T88IV,TM-T88V,TM-T90,TM-T90 KP,TM-T90II,TM-U210A,TM-U210B,TM-U210D,TM-U220A,TM-U220B,TM-U220D,TM-U295,TM-U590,TM-U675,TM-U950
FAQ改善アンケート

このページの評価をお聞かせください。〇✖をお選びください。

 

■役に立った
■役に立たなかった