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;
}
}
问题是,当我想用俄语字符设置文件名并下载 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;
}
}