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-5
或windows-1251
之前(但不是在UTF-8)。
然后在 tFPDF 中使用它。
我在 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-5
或windows-1251
之前(但不是在UTF-8)。
然后在 tFPDF 中使用它。