質問 > その他 > 帳票の文字化けで困っています。 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
world |
投稿日時: 2012/3/8 19:29
対応状況: −−−
|
新米 登録日: 2012/3/7 居住地: 投稿: 9 |
帳票の文字化けで困っています。 帳票の文字化けで困っています。
http://svn.ec-cube.net/open_trac/changeset/21358 を参考に SC_Fpdf.php を作成し(ほとんど同じです。) EC-CUBE管理より、帳票の作成をすると PDFファイルに日本語の文字化けは発生してしまいます。 具体的には以下の通りです。 51行目からの $this->arrMessage = array( 'このたびはお買上げいただきありがとうございます。', '下記の内容にて納品させていただきます。', 'ご確認くださいますよう、お願いいたします。' や、100行目からの //ショップ情報 などは問題なく 日本語で表示します。 PDFで文字化けするのは、まず46行目の $this->label_cell[] = $this->lfConvSjis("商品名 / 商品コード / [ 規格 ]"); $this->label_cell[] = $this->lfConvSjis("数量"); $this->label_cell[] = $this->lfConvSjis("単価"); $this->label_cell[] = $this->lfConvSjis("金額(税込)"); です。日本語の部分(" ")の中がPDFだと 商品名 / 商品コード / [ 規格 ] → i/iR[h/[ Ki ] 数量 → (空欄になる) 単価 → P 金額(税込) → z() という表示になります。 また、// 購入者情報 について146行目 $text = "〒 ".$this->arrDisp['order_zip01']." - ".$this->arrDisp['order_zip02']; の= "〒 "、〒マークが表示しない。 151行目からの $text = $this->arrDisp['order_name01']." ".$this->arrDisp['order_name02']." 様"; $this->lfText(27, 59, $text, 11); //購入者氏名 の" 様"; のところが 様 → l と表示、 また購入者氏名にスペースを使うと、スペースを入れた部分が @ と表示されます。 他には、205行目からの $i++; $arrOrder[$i][0] = ""; $arrOrder[$i][1] = ""; $arrOrder[$i][2] = $this->lfConvSjis("商品合計"); $arrOrder[$i][3] = number_format($this->arrDisp['subtotal']).$monetary_unit; $i++; $arrOrder[$i][0] = ""; $arrOrder[$i][1] = ""; $arrOrder[$i][2] = $this->lfConvSjis("送料"); $arrOrder[$i][3] = number_format($this->arrDisp['deliv_fee']).$monetary_unit; $i++; $arrOrder[$i][0] = ""; $arrOrder[$i][1] = ""; $arrOrder[$i][2] = $this->lfConvSjis("手数料"); $arrOrder[$i][3] = number_format($this->arrDisp['charge']).$monetary_unit; $i++; $arrOrder[$i][0] = ""; $arrOrder[$i][1] = ""; $arrOrder[$i][2] = $this->lfConvSjis("値引き"); $arrOrder[$i][3] = "- ".number_format(($this->arrDisp['use_point'] * POINT_VALUE) + $this->arrDisp['discount']).$monetary_unit; $i++; $arrOrder[$i][0] = ""; $arrOrder[$i][1] = ""; $arrOrder[$i][2] = $this->lfConvSjis("請求金額"); $arrOrder[$i][3] = number_format($this->arrDisp['payment_total']).$monetary_unit; に関しても日本語の lfConvSjis("○○"); の部分が 商品合計 → iv 送料 → 空欄になります 手数料 → l 請求金額 → z と表示されます。 勿論、金額や個数、送料、手数料など、それ自体の内容表示には問題ありませんが 何の金額なのか、合計なのかの表記(タイトル)としての表示がPDFで文字化けしている という事です。 あとは、どこという訳ではなくPDFの表示で全ての 「円」という文字と「<備考>」という文字が 円 → 〜 <備考> → ] と表示します。 問題は以上です。 長くなって大変申し訳ございません。 上に書き出した、それぞれに問題があるという訳でなく その、("○○"); をどう出力するかを制御している部分の 問題かとは思います。 331行目からの // 文字コードSJIS変換 -> japanese.phpで使用出来る文字コードはSJIS-winのみ function lfConvSjis($conv_str) { return mb_convert_encoding($conv_str, "SJIS-win", CHAR_CODE); } /** * ゴシックフォントを定義 * * @return void */ function lfAddGothicFont() { $cw = $GLOBALS['SJIS_widths']; $c_map = '90msp-RKSJ-H'; $registry = array('ordering'=>'Japan1','supplement'=>2); $this->AddCIDFonts('Gothic', 'KozGoPro-Medium-Acro,MS-PGothic,Osaka', $cw, $c_map, $registry); } あたりが怪しいと思って試していたのですが 行き詰ってしまいました。 なにとぞ宜しくご指導頂きたくお願い申し上げます。 |
ゲスト |
投稿日時: 2012/3/9 6:16
対応状況: −−−
|
Re: 帳票の文字化けで困っています。 SC_Fpdf.phpの文字コードを
SJISではなくUTF-8で保存してみてください。 |
|
world |
投稿日時: 2012/3/9 12:17
対応状況: −−−
|
新米 登録日: 2012/3/7 居住地: 投稿: 9 |
解決しました。 返信いただきありがとうございました。
UTF-8で保存してみたところ 文字化け解消いたしました。 皆様、大変お世話になりました。 ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |