SSH写入Windows上的文件

时间:2015-12-15 17:24:17

标签: php windows batch-file cmd phpseclib

我对文本的编码有问题,我不知道我使用的是什么方法,所以我可以使用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

1 个答案:

答案 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来电。