Encoding 是否有任何8位单字节字符编码,包括俄语(西里尔文)和德语字符?(用法:fpdf)

Encoding 是否有任何8位单字节字符编码,包括俄语(西里尔文)和德语字符?(用法:fpdf),encoding,character-encoding,fpdf,Encoding,Character Encoding,Fpdf,我正在做一个基于fpdf的项目,使用特殊字符遇到了麻烦。 我知道fpdf不支持任何utf8,我必须构建自己的字体来使用特殊字符。 通过使用iso-8859-5编码,俄文字符以及德文字符和其他一些编码,这一功能已经开始发挥作用 但是,没有一种编码可以同时支持两者,这是对的吗? 除此之外: 这是一个非常古老的大型项目,已经在使用fpdf。我知道还有其他版本,如mpdf等,可以处理utf8,但如果有任何其他解决方案,而不是更换整个系统,我真的很想这样做 谢谢你的帮助 没有这样的单一编码 我找到的最接近

我正在做一个基于fpdf的项目,使用特殊字符遇到了麻烦。 我知道fpdf不支持任何utf8,我必须构建自己的字体来使用特殊字符。 通过使用iso-8859-5编码,俄文字符以及德文字符和其他一些编码,这一功能已经开始发挥作用

但是,没有一种编码可以同时支持两者,这是对的吗?

除此之外: 这是一个非常古老的大型项目,已经在使用fpdf。我知道还有其他版本,如mpdf等,可以处理utf8,但如果有任何其他解决方案,而不是更换整个系统,我真的很想这样做


谢谢你的帮助

没有这样的单一编码

我找到的最接近的是CP771,它支持立陶宛语和俄语,但第一:它不能解决你的问题,第二:它无论如何都不会得到任何支持

你可以为两种语言定义不同的字体,我认为这是最简单的方法

按照上一节的教程,我想这会起作用:

MakeFont('comic.ttf','comicDE.afm','cp1252');
MakeFont('comic.ttf','comicRU.afm','iso-8859-5');
然后:

$pdf->AddFont('ComicDE','','comicDE.php');
$pdf->AddFont('ComicRU','','comicRU.php');

当然,这需要您根据文本所使用的语言,以不同的方式对文本进行编码并将其添加到PDF中,但我认为这是该库的局限性,无论如何都很难以不同的方式克服。

我已经像这样扩展了FPDF,它似乎可以很好地处理UTF8输入:

class PDF extends FPDF {

    function Cell( $w, $h = 0, $t = '', $b = 0, $l = 0, $a = '', $f = false, $y = '' ) {

        parent::Cell( $w, $h, iconv( 'UTF-8', 'windows-1252', $t ), $b, $l, $a, $f, $y );

    }

}

谢谢你的回复。恐怕你是对的,没有比使用不同的字体文件更好的解决方案了。很糟糕,因为我们在一个文件中同时使用两种语言,所以我们需要将几乎每个单词分开,但至少它是有效的。