我正在编写一个旨在在Linux Terminal中运行的PHP脚本,以便将可变结果拖放到文本文件中。
一切似乎都工作正常,但是当我运行脚本并显示终端中的输入行时,我无法写出包括单个重音符号(´
)和带重音字母(如)的重音单词á é í ó ú
。
这是我用来接受用户输入的部分代码:
<?php
$cuantos = readline("Cuantas veces? ");
$cadena = readline("Escriba el Texto: ");
$separar = readline("Incluir separadores? ");
$separar = strtoupper($separar);
$archivar = "";
for ($x = 1; $x <= $cuantos; $x++) {
if ($separar=="S") { $archivar = $archivar . "Texto ".$x."\n";}
if ($separar=="S") { $archivar = $archivar . "----------------------------------\n";}
echo $archivar = $archivar . $cadena\n;
if ($separar=="S") { $archivar = $archivar . "==================================\n";}
}
file_put_contents('textos.txt', $archivar);
?>
此处显示了在终端中运行的脚本的屏幕截图:
请注意,该文本应显示为Este texto debería tener acentos pero en la terminal no está aceptando ningún caracter con tilde.
,但是该文本未显示任何重音。
我已经尝试过<?php header("Content-Type: text/html; charset=utf-8"); ?>
对字符集使用和其他技巧,以使readline
接受重音符号没有成功。我也尝试过更改php.ini
默认字符集,但到目前为止没有成功。
我可以在终端中写重音字母,如下面的屏幕截图所示:
mb_internal_encoding("UTF-8");
按照建议插入后,还没有运气。
也许我的终端出了点问题,但这使我认为这应该在tty终端上起作用,还是不行?所以我尝试了,并且得到了相同的结果。
任何帮助表示赞赏。
问题是,Ubuntu 14.04上的默认php软件包使用了最初为BSD编写的libedit。它有一个错误,解决方法是将libedit替换为readline。
错误报告如下:
解决方案:
我用正确的构建创建了一个Debian软件包。它可以在Ubuntu 14.04上成功运行,并通过重音字母解决了该问题。
笔记:
如果发生依赖关系错误,请运行: sudo apt-get -f install
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句