【问题标题】:PHP scandir filenames with Turkish characters带有土耳其字符的 PHP scandir 文件名
【发布时间】:2014-10-31 14:39:45
【问题描述】:

我正在使用 PHP scandir 列出文档。我对某些字符有疑问,例如 ğ、ı、ş... 所以这是我的代码;

$directory = "document";
$scanned_directory = array_diff(scandir($directory, 1), array('..', '.'));
foreach ($scanned_directory as &$value) {
    echo utf8_encode($value);
}

实际上文件名是“şığx.jpg”,但输出是“þýðx.jpg”。 utf8_encode 没有解决这个问题。你能帮助我吗?谢谢。

【问题讨论】:

  • utf8_encode — 将 ISO-8859-1 字符串编码为 UTF-8。 ISO-8859-1 没有土耳其字符。
  • FoX:我在发帖之前看到了那个帖子。但它没有用。

标签: php string filenames


【解决方案1】:

utf8_encode 在这里对您没有帮助,因为您的文件系统可能采用不同的编码。使用

echo iconv($in_charset, 'UTF-8', $value);

其中$in_charset 可能是ISO-8859-9windows-1254CP857

或者如果你还没有尝试过,也许你的文件系统已经是 utf 了;)。

【讨论】:

    【解决方案2】:

    我有同样的问题,我的系统使用的是 CP857。如何从 CP857 转换为 UTF-8?

    此网站https://doc.bccnsoft.com/docs/php-docs-7-en/mbstring.supported-encodings.html 声称 PHP 7 不支持 CP857。但我不想相信这一点。

    我找到了其他网站,我会检查一下:https://www.phpclasses.org/package/1360-PHP-Conversion-between-many-character-set-encodings.html

    【讨论】:

      猜你喜欢
      • 2021-07-21
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 2012-12-19
      相关资源
      最近更新 更多