2010-05-20 21 views
3

我在我的PDF中收到字符,我已經剝去\ r \ n \ r \ n \ t,修剪所有內容,解碼html實體和剝離標籤。沒什麼幫助。數據來自MySQL數據庫。我生成的PDF中的奇怪字符

任何幫助,將不勝感激。

+1

你期望什麼呢? – 2010-05-20 07:02:51

+1

在MySQL中數據看起來像什麼? – 2010-05-20 07:03:08

+0

什麼是在MySQL數據庫中使用的編碼,您如何訪問數據,以及如何創建PDF? – 2010-05-20 07:03:56

回答

2

在添加到pdf之前檢查字符串編碼(使用mb_detect_encoding),它是unicode字符串嗎? MySQL數據庫中的數據可以使用unicode,但數據庫連接可以使用其他編碼。

+0

有趣。 MySQL數據庫是utf-8。如果情況是這樣的話,我如何更改我的數據庫連接的編碼? – HyderA 2010-05-21 05:55:33

+0

要設置連接編碼,您應該在mysql_connect之後執行下一個查詢 mysql_query(「SET NAMES'utf8'COLLATE'utf8_general_ci'」) 。如果您的數據庫歸類不是utf8_general_ci - 請設置所需的歸類。如果您有權訪問my.cnf,則可以將此查詢添加到它: init-connect =「SET NAMES'utf8'COLLATE'utf8_general_ci'」。那裏有更多的信息: http://dev.mysql.com/doc/refman/5.5/en/charset-connection.html – Zyava 2010-05-21 18:26:31

+0

謝謝剛纔幫我出來 – 2012-02-04 10:32:30

0

您可能正在使用不可用的字體。

+0

文本顯示如你好有 – HyderA 2010-05-20 07:15:01

0

嘗試是這樣的,以確定其數值並替換:

$str = 'Hello World'; 
echo str_replace(chr(ord('')), '[removed]', $str); 

輸出:

Hello [removed] World 
0

你試過

$string = "testContainingSpecialCharsäöüöüäüß"; 
$pdf->Cell(0,0,$string); 

哪些字符應該是顯示而不是那些東西?

0

FPDF不支持unicode字符,所以這可能是您的問題的原因。有一個擴展,你可以嘗試在http://acko.net/node/56,或者你可以切換到另一個PDF生成器庫(我建議TCPDF)。

或者,如果您想要使用FPDF,則可以嘗試使用iconv將文本從UTF-8轉換爲支持的字符集(即$str = iconv('UTF-8', 'windows-1252', $str);)。

+0

我們實際上使用的是FPDF擴展,UFPDF支持unicode – HyderA 2010-05-20 14:24:07

0

看起來像從Microsoft word複製/粘貼文本時發生的結果。 PDF文件是否包含來自MS Word文檔的文本?這可能是你的問題。有一些有趣的意見轉換和PHP.net網站上剝離這些字符在PHP:http://www.php.net/manual/en/function.strtr.php#39383

我只是假設它是MS Word字符在您的PDF文件。

+0

不,它是從網頁抓取的數據,以及其中的字符顯示的數據只填充了製表符和空格。 – HyderA 2010-05-21 05:53:07