
こんにちわ!宜しくお願い致します。
現在、オープンソースのアンケートシステム「limesurvey」におきまして、文字化けが起きており困っております。
LimeSurveyバージョン 1.90+ Build 9046
ほとんどのところは、きちんと日本語表示されるのですが、グラフ内(pchart)の文字が文字化けします。
いろいろネットで調べて、imagettftextが原因と分かりました。
「JIS-mapped Japanese Font Support」の設定値がTRUEの場合、GDライブラリは渡された文字列をUTF-8ではなく、Shift_JISとして解釈するということが分かり、mb_convert_encoding関数であらかじめShift_JISに文字コード変換してから、imagettftext関数に渡したところ基本的には、文字化けが解消しました。
以下が、そのコードです。
$Value2 = mb_convert_encoding($Value2,"SJIS ","UTF-8");
しかしながら、「(1)(2)(3)」(←まる1、まる2、まる3)などの機種依存文字がどうしても「?」に変換されてしまいます。
Shift_JISには、「(1)(2)(3)」などの機種依存文字が無いので仕方がないのですが、何とか良い方法が無いでしょうか?
ちなみにネットで調べたところ、「SJIS」ではなくて、「SJIS-win」で変換すれば文字化けが起こらないと分かりましたが、今度は、imagettftextでエラーが出てしまいます。
下記のコードはエラーになります。
$Value2 = mb_convert_encoding($Value2,"SJIS-win ","UTF-8");
「JIS-mapped Japanese Font Support」の設定値がTRUEの場合でも、GDライブラリは渡された文字列をUTF-8として強制的に解釈させる方法など無いのでしょうか?その他何か良い方法があればお教え下さい。
以上、宜しくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
よくあることですが
丸数字やローマ数字、(株)・(有)や波ダッシュ・全角チルダなどはトラブルの原因になります
丸数字は(数字)、ローマ数字はIとVとXをつかった組合せに
(株)・(有)はかっこ株・かっこ有に、波ダッシュは長音(ー)に
str_replace()で事前に変更してしまうのが手っ取り早いです
この回答への補足
自己解決しました。
下記のコードをそのまま使用すると、エラーになったり、文字化けが改善されませんが、コード中の「'」を「"」に置換して使用すれば出来ました。
http://memo.xight.org/2006-06-19-13
御回答有り難う御座います。
そういった方法しかやはり無いのでしょうか?
一応、下記のホームページのコードを使って、
http://memo.xight.org/2006-06-19-13
$Value2 = replaceText($Value2);
$Value2 = mb_convert_encoding($Value2,"SJIS-win ","UTF-8");
と実装しましたが、うまく変換できません。
ちなみに文字列に、(1)(←まる1)が含まれているとして、
$Value2 = mb_ereg_replace('\xE2\x91\xA0','(1)',$Value2);
$Value2 = mb_convert_encoding($Value2,"SJIS-win ","UTF-8");
は上手く変換できています。
何か実装の仕方が悪いのでしょうか?
以上、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postの文字化け防止について
-
フォームメールの文字化け
-
SQL Serverで文字コードUTF-8
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
文字化け変換方法
-
SJIS→UTF-8変換後の文字化けに...
-
VBAのコマンドボタンの文字列の...
-
PPT ファイルの文字カウント=...
-
エクセルのCOUNTIFが正しくカウ...
-
エクセルでの漢字、カタカナ、...
-
ソースコードの1行が長いとき...
-
メッセージボックスで1025文字...
-
文字列型変数に1024を超えた文...
-
ファイル内の1行(レコード)から...
-
Excel関数「COUNTIF」で”文字”...
-
COBOLの改行
-
カンマの含まれる文字列の数値...
-
vb.netでのリッチテキストボッ...
-
ある文字列間のデータの抽出
-
【VB6】項目内に改行コードを含...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
PHPmailerでの添付ファイルの文...
-
PHP cURLでPOSTした値が文字化...
-
SQL Serverで文字コードUTF-8
-
日本語(マルチバイト)でのwor...
-
imodeメールのSubject部分の文...
-
「テキストテキスト」という文...
-
mb_eregについて
-
SJISからUTFに変換して...
-
SJISで取得した半角カナをUTF-8...
-
PostgreSQLからCSV形式でエクス...
-
PHPの文字化けについて教え...
-
PHPでのメール差出人名について
-
【PHP】日本語を実体参照符号化...
-
Shift-JISからUTF-8への変換が...
-
phpフォームで携帯へメール送信...
-
txtファイル作成の際に文字コー...
-
vodafoneが言う事ききません
-
文字コードを変換したURLを作成...
-
PHP + SQLite 文字化けについて
おすすめ情報