FPDF中的塞尔维亚语字符

时间:2018-07-19 10:50:30

标签: php 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Ðμѕту

非常感谢

1 个答案:

答案 0 :(得分:0)

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

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

要获得UTF-8支持,您必须使用基于FPDF的 tFPDF 。 tFPDF接受UTF-8编码的文本。请 read all this instructions ,然后从该网站的底部下载 ZIP file

转换为UTF-8:

如果您使用上面的说明(来自链接)并从文件中加载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中使用它。