現在、任意で指定したフォント名を使用してある文字列を表示するようなプログラムを作成しています。
CreateFont()の文字セットには、SHIFTJIS_CHARSET、タイプフェイス名にはArialを指定しても環境によっては、日本語が文字化けしたままとなります。
何故、そうなるのか分からない状況ですので、ご教授ください。
また、解決方法がございましたらお願いいたします。
表示する文字列:テスト ⇒ 出力結果:□□□
現在、CreateFont()には以下の指定を行っています。
CreateFont(X, ※1
0,
0,
0,
400,
TRUE,
FALSE,
FALSE,
SHIFTJIS_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
PROOF_QUALITY,
FIXED_PITCH | FF_DONTCARE,
Y); ※2
※1 X:任意のサイズ
※2 Y:Arial
CreateFontで作成されたハンドルはSelectObjectで関連付けています。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
フォント作成での似た議題がありましたので、参考URLを以下に載せておきます。
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?p …
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?p …
参考URLを基に考えると、
環境によって表示が変わる。というのは各々の環境で各フォントの重みが違うからではないのでしょうか?(勝手な想像なので間違ってたらゴメンナサイ)
もし、上記の考えがあっているならば環境依存になるので
回避策というのは面倒or難しそうですね。
No.4
- 回答日時:
Arial でも、Arial Unicode MS とかいうフォントだと、Unicode 2.1の範囲の文字の
フォントデータを持っています(もちろん漢字もある)。
それってことはないでしょうか?
参考URL:http://www.faireal.net/articles/6/23/#d21203
No.3
- 回答日時:
ひとつ分からないのですが、
Arial
は日本語の文字を持っていないフォントですが、
なんでArialにこだわっているのでしょう?
#1さんのいうように日本語のフォントを指定した
方が良いかと思うのですが。
このプログラムもからくりも分かりませんが、
日本語の文字列にArialを指定した場合、
裏で勝手に日本語フォントに置き換えてるアプリは
多いですよね。MSのアプリなど特に。
回避方法としては、日本語には日本語フォントを
使うのが良いかと思います。
No.1
- 回答日時:
文字セットにSHIFTJIS_CHARSETを指定したからといって、日本語の文字列が表示できるということはありません。
出力結果が日本語とならないには、そのフォントが日本語のフォントを持っていないだけです。
素直にMSゴシックなどの日本語を含むフォントにしましょう。
# 日本語を知らない外国の人に日本語でと指定しても、日本語が返ってこないことと同様かと。
この回答への補足
早速の回答ありがとうございます。
Arialを指定して、かつ、日本語文字を指定した場合、環境によっては指定した日本語文字が異なるフォントで出力される場合もあります。
どちらかというと、なぜ環境によって変わるのか?また、それの回避方法は?ということのお知恵を拝借したいと思っています。
もし、なにかよい回避方法等ありましたらご教授願います。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- その他(パソコン・周辺機器) WINDOWS11 IMEの日本語入力で困っています 4 2023/04/29 19:24
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- スタンプ・絵文字・顔文字 前回質問の続き 1 2022/08/24 16:06
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
outlook 文字を揃えたい。tab...
-
C# Font GdiCharSet
-
Excel:一部のフォントでセルの...
-
筆記体みたいな文字コードが欲...
-
似ているフォント(Win⇔Mac)
-
HP作成時のフォントが他のPCで...
-
gvimでフォント、色テーマ設定...
-
英語版ホームページのテキスト...
-
UNICODE
-
パワポが文字化け
-
外国語版メイリオはある?
-
WORD VBAでハイパーリ...
-
フォントの再配布にあたりますか?
-
マックのサファリで見ると私の...
-
ワードでゴシックの文字を太く...
-
文字コード及びフォントに関す...
-
HPで使って文字化けしないフォ...
-
printf("文字列\\n")が円マーク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
縦書きテキストボックスの表示"...
-
「MS Pゴシック」と同じ幅の...
-
16x16のスプライトフォント
-
MsgBoxについて
-
似ているフォント(Win⇔Mac)
-
font-family の記載方法
-
ワードでゴシックの文字を太く...
-
Excel:一部のフォントでセルの...
-
英語版OSでの遊明朝、游ゴシック
-
メールで、榊の文字を木辺に神...
-
printf("文字列\\n")が円マーク...
-
エクセルVBAが中国のPCでは動か...
-
C# Font GdiCharSet
-
逆向き/(スラッシュ)の入力方法
-
Eclipseで文字がずれます。
-
フォントファイル(.ttf , .otf)...
-
外国語版メイリオはある?
おすすめ情報