PHP中iconv处理含波兰语字符的路径时为空,如何正确解决?
解决CSV导出中含波兰语字符路径转码为空的问题
最近在开发应用的CSV导出功能时,遇到了一个棘手的问题:当路径包含波兰语特殊字符(例如C:\Users\Desktop\Przejście graniczne)时,转码后的路径值居然为空!
最开始我使用的转码代码是这样的:
$path = iconv( 'UTF-8', 'ISO-8859-1', $thisRow['path'] ) ;
结果只要路径里有波兰语字符,$path就直接变成空值。虽然注释掉转码逻辑,直接赋值$path = $thisRow['path'] ;能正常显示路径,但这种处理方式不够规范,不符合CSV文件的编码要求。
后来经过尝试,找到了更规范的解决方案:在使用iconv转码前,先用utf8_encode()函数处理原路径字符串。调整后的代码可以正常处理带波兰语字符的路径,运行完全正常:
$path = iconv( 'UTF-8', 'ISO-8859-1', utf8_encode($thisRow['path']) ) ;
内容的提问来源于stack exchange,提问作者EternalSunShine
相关产品推荐
相关产品推荐

