php strtoupper不适用于iconv/utf8_decode和FPDF

1hdlvixo  于 2023-08-02  发布在  PHP
关注(0)|答案(2)|浏览(91)

要将特殊字符打印到FPDF,我可以使用:

$this->Cell($w2, 15, iconv('UTF-8', 'windows-1252', $text));

字符串
或者是

$this->Cell($w2, 15, utf8_decode($text));


但这两个都不适用于strtoupper。示例如下:

$this->Cell($w2, 15, strtoupper(iconv('UTF-8', 'windows-1252', $text)));
$this->Cell($w2, 15, strtoupper(utf8_decode($text)));

$this->Cell($w2, 15, iconv('UTF-8', 'windows-1252', strtoupper($text)));
$this->Cell($w2, 15, utf8_decode(strtoupper($text)));


鉴于:

$text = "Conformità";


所有这些返回:
一致
而不是:
一致性

更新

这里或其他答案中提出的解决方案不起作用:

mb_strtoupper($text);
mb_strtoupper($text, 'UTF-8');


打印
CONFORMITÉ

fykwrbwg

fykwrbwg1#

您需要使用函数的多字节版本mb_strtoupper()

echo strtoupper($text); //CONFORMITà
echo mb_strtoupper($text); //CONFORMITÀ

字符串
参见PHP文档:PHP mb_strtoupper()

3npbholx

3npbholx2#

尝试:mb_convert_case($your_string,MB_CASE_UPPER,'ISO-8859- 1');为我工作

相关问题