
こんにちわ!宜しくお願い致します。
現在、オープンソースのアンケートシステム「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ランキング
-
PHP+Postgres 「髙」が文字化け
-
文字化け変換方法
-
文字列を文字コードの数値に変...
-
Accessの文字数を調べたい
-
VBAのコマンドボタンの文字列の...
-
文字の入力で横バー上段、中断...
-
C++で空Enterの入力を判...
-
バーコード入力と手入力の判断...
-
FORTRANで作成したテキストファ...
-
メッセージボックスで1025文字...
-
1行ごとに取得して、その改行...
-
CSVファイルの改行コード判別
-
カンマの含まれる文字列の数値...
-
エクセルのCOUNTIFが正しくカウ...
-
マクロで半角を全角に
-
PHPの¥
-
配列のから一致する文字列を検...
-
preg_matchでエラーが出ます。
-
ダイアログにおける改行
-
改行コード2種類を混在させたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
SQL Serverで文字コードUTF-8
-
mb_convert_encoding で 一部の...
-
ファイルの文字コードを調べたい
-
mail()で送信したメールのタイ...
-
mb_strposについて予定外の結果...
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
PHP cURLでPOSTした値が文字化...
-
PostgreSQLからCSV形式でエクス...
-
PHPmailerでの添付ファイルの文...
-
phpMyAdmin内での文字化け
-
mb_send_mailで、半角スペース...
-
UTF8メールがLotus Notesで文字...
-
メールフォームが部分的に文字...
-
DOMDocumentの文字化けに悩まさ...
-
フォームメールの文字化け
-
mb_send_mailの2重投稿を防止し...
-
【追】「あ」→「82A0」のように...
-
SJISで取得した半角カナをUTF-8...
-
Gmailへのメール送信で文字化け
おすすめ情報