FPDF 中的塞尔维亚字符

Serbian characters in FPDF

我在 FPDF 中遇到塞尔维亚语问题 http://www.fpdf.org/

$mystring = "Запослени у рачуноводству/сродном радном месту";

我使用了 $pdf->Write 和 MultiCell... 都是相同的结果。

utf8_decode($mystring) -> ????????? ? ?????????????/??????? ?????? ?????

iconv('UTF-8', 'utf-8//TRANSLIT', $mystring) -> ЗапÐ3⁄4ѕлÐμÐ1⁄2Ð ̧ у рачуÐ1⁄2Ð3⁄4Ð2Ð3⁄4Ð ́ѕтÐ2у/ѕрÐ3⁄4Ð ́Ð1⁄2Ð3⁄4Ð1⁄4 раР́Ð1⁄2Ð3⁄4Ð1⁄4Ð1⁄4Ðμѕту

非常感谢

就我个人而言,我不会在我的 PDF 中使用 UTF-8,因为文件大小对我来说会很大。我在这种情况下使用字体嵌入来避免大文件大小。

FPDF class 可以生成西欧语言以外的多种语言的文档:中欧、西里尔、希腊、波罗的海和泰语,前提是您拥有具有所需字符集的 TrueType 或 Type1 字体。还提供 UTF-8 支持。

对于 UTF-8 支持,您必须使用本网站底部的 tFPDF which is based on FPDF. tFPDF accepts UTF-8 encoded text. Please read all this instructions and then download the ZIP file

转换为 UTF-8:

如果您使用上述说明(来自 link)并从如下文件加载 UTF-8 字符串,则不需要转换为 UTF-8:

// this file file must be saved in UTF-8 before:
$str = file_get_contents('Text-saved-in-UTF-8.txt');

其他情况:

您必须使用 mb_convert_encoding 而不是 iconv.

对于塞尔维亚语(拉丁语),这是 'iso-8859-2''windows-1250'。对于塞尔维亚语(西里尔文),这是 'iso-8859-5''windows-1251'。这些编码将提供变音拉丁字符的正确显示,例如 žćđš.

在你的情况下:

$mystring = "Запослени у рачуноводству/сродном радном месту";

你必须写:

$str = mb_convert_encoding($mystring, 'UTF-8', 'iso-8859-5');

$str = mb_convert_encoding($mystring, 'UTF-8', 'windows-1251');

你的PHP文件必须保存在iso-8859-5windows-1251之前(但不是在UTF-8)。

然后在 tFPDF 中使用它。