2011-01-09 27 views
5

我不知道最新的問題,但每當我從$ _POST函數調用字母時,它將它放在我的fpdf中作爲±..任何想法爲什麼?在fpdf中輸出的錯誤符號...ñ作爲ã..?

+0

這是一個字符集問題。你需要添加更多的細節:你的數據來自哪裏(數據庫?表格?),它是如何編碼的 – 2011-01-09 09:56:22

+0

數據庫形式..但人們寫ñ,它最終在fpdf作爲那些符號..在MySQL數據庫中它看起來如何我想要 – NORM 2011-01-09 10:10:14

回答

5

你的字符串中有一個錯誤的編碼。這是UTF-8,但我認爲你需要的Latin-1左右..

你可以在你的字符串使用utf8_decode():

echo utf8_decode("ñ"); // prints ñ 
1

我們有這個問題曾經和使用

utf8_decode("foo bar"); 

解決了這個問題(當然取決於如果數據是從用戶,數據庫,正在添加...)。不要忘了文件交付給用戶以UTF-8以及在頭

header("Content-type: application/pdf; charset=utf-8"); 
+0

在頭文件中設置了什麼? – NORM 2011-01-09 10:18:26

+0

@NORM請看我的編輯。 – DrColossos 2011-01-09 10:38:41

2

我也花了相當長的時間試圖讓這個工作,並認爲下面的解釋可能會對其他人有所幫助。

如果唯一的問題是£/€或類似的字符,無需編寫自己的複雜功能。

這裏是我使用(從這個線程和其他人採取淨): -

$pdf->SetY(220); // set the y co-ord before output // 
$monthlyRent = utf8_decode("£" . number_format($monthlyRent, 2)); // 2 dec places // 
// previously $monthlyRent is pulled from the MySql db as $array['_monthlyRent']; 
$pdf->Write(5,'Gross monthly rent: ' . $monthlyRent); // outputs £980 or whatever. // 

作品一種享受,但記得做number_format($yourval, 2)在同一行utf8_decode();或者擰緊!

希望這對一些可憐的草皮有幫助,像我一樣,一直在掙扎幾個小時!