首页 > 解决方案 > `iconv` 需要安装什么才能使用 PHP8

问题描述

我正在尝试迁移doctrine/rst-parser到 Github 操作,最后一个障碍是测试因调用而失败iconv

iconv('utf-8', 'us-ascii//TRANSLIT', $text)

测试失败

Failed asserting that two strings are identical.
--- Expected
+++ Actual
@@ @@
     <li class="dash">Test list item 1.</li>
     <li class="dash">Test list item 2.</li>
 </ul>
-<p class="rot-gelb-blau grun-2008">Weird class names.</p>
+<p class="rot-gelb-blau grn-2008">Weird class names.</p>

我已经尝试安装libc6ubuntu 包,并安装iconvPHPintl扩展,没有骰子。我应该尝试什么?

这是拉取请求的链接:https ://github.com/doctrine/rst-parser/pull/126

编辑:解决方案似乎是做 asetlocale(LC_ALL, 'en_US');,但false出于某种原因,它会在 github 操作上返回。

标签: phpgithub-actionsphp-8

解决方案


使用setlocale(LC_ALL, 'en_US.utf8')解决了这个问题。自 PHP 8 起这是必需的:https ://github.com/php/php-src/commit/c4ad8beaa890b931031a5cf8a1d2d38550fca3af


推荐阅读