
こんにちわ!宜しくお願い致します。
現在、オープンソースのアンケートシステム「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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 文字化け。メモ帳でUTF-8に変換後、エクセルへ貼り付けたいです。 3 2022/08/14 07:21
- Java VScodeのターミナルの文字化けについて 1 2022/09/27 22:19
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Google Drive 【Googleドライブ】ドライブ上内でのフォルダ移行について 4 2022/11/30 12:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化け変換方法
-
PHP cURLでPOSTした値が文字化...
-
SJISからUTFに変換して...
-
SQL Serverで文字コードUTF-8
-
VBAのコマンドボタンの文字列の...
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
ラベル(スタティックテキスト)...
-
エスケープ文字の復帰(¥r)と...
-
改行について
-
エクセルでの漢字、カタカナ、...
-
カンマの含まれる文字列の数値...
-
エクセルCSVの落とし穴?
-
1行ごとに取得して、その改行...
-
ソースコードの1行が長いとき...
-
jsp 改行コードで改行させて表...
-
テキストボックス行の桁数を制...
-
VBAでCSVをExcelに取り込む時に...
-
コンボボックスの項目中に改行を
-
正規表現で、半角大文字と半角...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
PHP cURLでPOSTした値が文字化...
-
PostgreSQLからCSV形式でエクス...
-
PHPでの文字列置換について
-
SQL Serverで文字コードUTF-8
-
文字変換
-
記号全削除のクラスを作成したい
-
mb_send_mail()関数のタイトル...
-
postの文字化け防止について
-
SJISで取得した半角カナをUTF-8...
-
UTF8メールがLotus Notesで文字...
-
mb_send_mailの2重投稿を防止し...
-
日本語混じりの文字列の語数制限
-
10文字以降は非表示にしたいん...
-
SJIS→UTF-8変換後の文字化けに...
-
multipart/form-dataの文字化け
-
メール送信プログラムで特定文...
-
mysql登録時の文字化け
-
Warning: mb_strpos(): Unknown...
-
mb_ereg_replaceに関して
おすすめ情報