いわゆる「5C問題」に該当する文字をPDF出力機能でPDF化すると
文字化けてしまうようです。なにか対策はないでしょうか?
WindowsXP pro SP2
mysql-5.0.45-win32
ruby186-25
redMine 0.5.1
Adove Reader 8.1.0
解決法ご存知の方、よろしくお願いします。
自分も困ったので調べると問題が2つありまして、
A・\自体が出ない(iconvで\混じり文字列の変換失敗のようです)
B・所謂5cな文字が化ける
で、両方を解決しようと思ったら結局以下のようになりました。
きっともっと綺麗な方法があると思いますが、一応の解と言う事で。
一応、Versionに"表示"と"逆に\はOK?"と"確認表"
の3つを追加してちゃんと表示されたのを自分の環境では確認しています。
...実は末尾に\は駄目なんですが、自分的に困らないので放置してます。
("\はOK?\" -> "\はOK?"、となります。)
Index: app/helpers/ifpdf_helper.rb
===================================================================
--- app/helpers/ifpdf_helper.rb (リビジョン 781)
+++ app/helpers/ifpdf_helper.rb (作業コピー)
@@ -53,7 +53,12 @@
def Cell(w,h=0,txt='',border=0,ln=0,align='',fill=0,link='')
@ic ||= Iconv.new(l(:general_pdf_encoding), 'UTF-8')
txt = begin
- @ic.iconv(txt)
+ txtar = txt.split('\\')
+ txtar2 = []
+ txtar.each{|x|
+ txtar2 << @ic.iconv(x)
+ }
+ txtar2.join('\\').gsub(/\\/, "\\\\\\\\")
rescue
txt
end
素晴らしいです。
この件で困っている人はたくさんいると思います。私も今日RubyForgeでバグ報告を
あげたばかりです。
http://rubyforge.org/tracker/index.php?func=detail&aid=14346&group_id=1850&atid=7160
この報告につなげてArmadilloさんのパッチをサブミットしていただけませんか?
> この報告につなげてArmadilloさんのパッチをサブミットしていただけませんか?
返信の形で付けておきました。
ついでに、末尾の\にも対応しておきました。手抜きですけど。
上述の修正を喜び勇んでソースに適用し、サービスを再立ち上げしたのですが、
未だ文字化けが直らないでいます。
何か上記修正でも文字化けが直らない組み合わせ(半角混じりでは駄目、等)があるのでしょうか?
それとも私の修正の仕方がまずかったのでしょうか?
教えて君で申し訳ありませんが、ご教示いただけると助かります。
解決策ではないですが、上記パッチを適用しても、
私のところでも文字化け現象がでます。
例えば、以下のように文字で文字化けします。
申込み → 垂オ込み
うちでは、PDF機能は使わないという運用にしています。
どうしても出力したい場合には、画面キャプチャーを利用しています。
一応、私の試している環境は
WindowsXP SP2
ruby 1.8.6-p111(mswin32、自分でCompile VS.NET2003)
Rails 1.2.3
redmine Rev.802(今朝更新)
に、自分のVSS PatchとWikiのPatchとこのPDFのPatchを当てています。
動作確認は、バージョンに
ハンカク全角混じりで表示ABC\あいうアイウ\¥
申し込み
\テスト\です\
を追加して、ガントチャートのPDFで確認してみました。
少なくとも私の環境ではOKです。
RedmineはWEBrick上での動作で、
ruby -Ku script/server -e production
で起動しています。
文字化け関連の場合、環境依存の可能性もあるのがなんとも。
特に、RedmineをUnix系で動かしていて、windowsの機種依存文字を使う場合等は、
色々と注意が必要だったような。
申し訳ないですが、環境関連の情報が無いと、自分のところでまともに動いている以上手出しのしようがないです。
> > この報告につなげてArmadilloさんのパッチをサブミットしていただけませんか?
>
> 返信の形で付けておきました。
> ついでに、末尾の\にも対応しておきました。手抜きですけど。
svn rev.813にパッチが取り込まれました。Armadilloさん、ありがとうございました。
ただ、解決しない方もいるので、もう少し調査が必要そうです。
# svnのコミットログは私がパッチの作者であるかのような記載になっているので
# フォーラムで指摘しておきました。