--- a/lib/redmine/export/pdf.rb	2011-04-06 06:56:13.000000000 +0900
+++ b/lib/redmine/export/pdf.rb	2011-04-06 06:57:32.000000000 +0900
@@ -144,15 +144,18 @@
 
         def fix_text_encoding(txt)
           @ic ||= Iconv.new(l(:general_pdf_encoding), 'UTF-8')
-          txt = begin
-            # 0x5c char handling
-            txtar = txt.split('\\')
-            txtar << '' if txt[-1] == ?\\
-            txtar.collect {|x| @ic.iconv(x)}.join('\\').gsub(/\\/, "\\\\\\\\")
+          txtar = ""
+          begin
+            txtar += @ic.iconv(txt)
+          rescue Iconv::IllegalSequence
+            txtar += $!.success
+            txt = $!.failed[1,$!.failed.length]
+            retry
           rescue
-            txt
-          end || ''
-          return txt
+            txtar += $!.success
+          end
+          # 0x5c char handling
+          return txtar.gsub(/\\/, "\\\\\\\\")
         end
 
         def RDMCell(w,h=0,txt='',border=0,ln=0,align='',fill=0,link='')
