tcpdf 输出 (filename.pdf) - 文件名不显示俄语字符

tcpdf output(filename.pdf) - filename does not show russian characters

问题是,当我想用​​俄语字符设置文件名并下载 pdf 文件时,它不显示文件名。例如,如果我设置文件名“файл.pdf”并下载它,下载的文件名将为“_.pdf”。我该如何解决?

首先,tcpdf::Output 用正则表达式替换文件名中的所有非拉丁符号(tcpdf.php(6.0.059 版本)中的 str 7538):

$name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name);

第二个 - basename()(打开 7602 str)。您可以使用 setlocale() 来正确使用此功能;

最后:您必须制作自己的 class 扩展 TCPDF,覆盖 Output(),将正则表达式更改为:[^a-zA-Zа-яА-Я0-9_\.-] 并使用 setlocale() & basename() 或您自己的当前获取文件名的函数;

class MyTCPDF extends TCPDF {
    public function Output($name='doc.pdf', $dest='I'){
        //copy original code and add changes;
    }
}