在fpdf中输出的错误符号...ñ作为ã..?

问题描述:

我不知道最新的问题,但每当我从$ _POST函数调用字母时,它将它放在我的fpdf中作为±..任何想法为什么?在fpdf中输出的错误符号...ñ作为ã..?

+0

这是一个字符集问题。你需要添加更多的细节:你的数据来自哪里(数据库?表格?),它是如何编码的 – 2011-01-09 09:56:22

+0

数据库形式..但人们写ñ,它最终在fpdf作为那些符号..在MySQL数据库中它看起来如何我想要 – NORM 2011-01-09 10:10:14

你的字符串中有一个错误的编码。这是UTF-8,但我认为你需要的Latin-1左右..

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

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

我们有这个问题曾经和使用

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

的替代解决方案是使用Unicode扩展FPDF(UTF- 8)支持。有一个补丁:http://acko.net/node/56

我也花了相当长的时间试图让这个工作,并认为下面的解释可能会对其他人有所帮助。

如果唯一的问题是£/€或类似的字符,无需编写自己的复杂功能。

这里是我使用(从这个线程和其他人采取净): -

$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();或者拧紧!

希望这对一些可怜的草皮有帮助,像我一样,一直在挣扎几个小时!