我对文本的编码有问题,我不知道我使用的是什么方法,所以我可以使用php写入带有捷克字符的文件文本以及其他语言的字符。 代码目前看起来像这样:
<?php
$appname = "tést";
function prevedKodovani($string)
{
$string = iconv("utf-8", "CP852//TRANSLIT", $string);
return $string;
}
include('Net/SSH2.php');
$ssh = new Net_SSH2('ip');
if (!$ssh->login('jmeno', 'heslo')) {
exit('Login Failed');
}
echo $ssh->exec('cmd /c echo set jmeno='.prevedKodovani(utf8_encode($appname)).'>>C:\Users\server\Desktop\promnene.bat');
?>
结果出现在文本文件中:
set jmeno=t?(C)st
答案 0 :(得分:0)
有许多因素需要考虑。 * .php文件的字符编码是什么?如果是UTF8,则tést
已经过UTF8编码,而utf8_encode
调用将加倍UTF8编码tést
。
您还必须考虑加载C:\Users\server\Desktop\promnene.bat
的字符编码。你用Notepad(支持ANSI,Unicode和UTF-8)或Notepad ++(它支持更多的字符编码)或其他东西加载吗?如果您使用CP852文件并将其加载为UTF-8文件,则无法获得您可能期望的字符。
就个人而言,当我使用批处理文件时,我通常只使用ANSI / ISO-8859-1。这意味着没有utf8_encode
来电,也没有iconv
来电。