fpdf 中导出的错误符号... ñ 为 ñ ..?
Posted
技术标签:
【中文标题】fpdf 中导出的错误符号... ñ 为 ñ ..?【英文标题】:wrong symbol exported in fpdf... ñ as ñ ..? 【发布时间】:2011-06-06 00:46:01 【问题描述】:我不知道是什么问题,但是每当我从 $_POST 函数中调用字母 ñ 时,它会将它作为 ñ .. 放入我的 fpdf 中。知道为什么吗?
【问题讨论】:
这是一个字符集问题。您需要添加更多细节:您的数据来自哪里(数据库?表单?),它是如何编码的 数据库形式.. 但人们写 ñ 并最终以 fpdf 作为那些符号.. 在 mysql 数据库中,它看起来像我想要的那样 【参考方案1】:您的字符串编码错误。它是 UTF-8,但我认为您需要 Latin-1 左右..
您可以在字符串上使用 utf8_decode():
echo utf8_decode("ñ"); // prints ñ
【讨论】:
嘿,谢谢!我会回应吗? .. 像下面一样,之后呢? 在将字符串写入 PDF 之前,您必须使用它:$your_string = utf8_decode($your_string);
。其实直接看完$_POST:$your_string = utf8_decode($_POST['your_string']);
这是我的帖子:$pdf->Write(0, "".$person["CA"]);我应该这样做: $pdf->Write $your_string = utf8_decode(0, "".$person["CA"]); ????【参考方案2】:
另一种解决方案是使用 Unicode (UTF-8) 支持扩展 FPDF。有一个补丁:http://acko.net/node/56
【讨论】:
谢谢回复!! ..我如何安装它? @NORM:真的:我不知道。但是从我收集的信息来看,您只需使用它来代替普通的 FPDF。更改包含,并实例化new UFPDF()
类。
@Edson:互联网档案馆:web.archive.org/web/20110411183526/http://acko.net/node/56【参考方案3】:
我也花了相当多的时间试图让它发挥作用,并认为以下解释可能对其他人有所帮助。
如果唯一的问题是£/€
或类似字符,则无需编写自己的复杂函数。
这是我用过的(取自这个帖子和网络上的其他人):-
$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. //
工作愉快,但做记得在utf8_decode();
的同一行中做number_format($yourval, 2)
否则它搞砸了!
希望这对一些像我一样挣扎了几个小时的可怜草皮有帮助!
【讨论】:
【参考方案4】:我们曾经遇到过问题并正在使用
utf8_decode("foo bar");
解决了问题(当然取决于数据是否来自用户、数据库……)。不要忘记在标头中以 UTF-8 格式将文件传递给用户
header("Content-type: application/pdf; charset=utf-8");
【讨论】:
以上是关于fpdf 中导出的错误符号... ñ 为 ñ ..?的主要内容,如果未能解决你的问题,请参考以下文章