php-language-server
php-language-server copied to clipboard
PHP Fatal error: Method AdvancedJsonRpc\ErrorResponse::__toS tring() AdvancedJsonRpc\Error: Malformed UTF-8 characters
trafficstars
Windows 10 1809 charset GBK PHP 7.3.5 npm 6.9.0 node 12.0.1
I tried using iconv to convert (string)$msg, which is still the same, but when I change (string)$msg to something else, the console no longer reports an error.
我尝试过使用iconv转换(string)$msg,还是一样,但是当我将(string)$msg修改成别的字符时,控制台不再报错。
//.....
public function write(Message $msg): Promise
{
// if the message queue is currently empty, register a write handler.
if (empty($this->messages)) {
Loop\addWriteStream($this->output, function () {
$this->flush();
});
}
$promise = new Promise();
$this->messages[] = [
'message' => (string)$msg,
'promise' => $promise
];
return $promise;
}
//......
Language server exited with exit code 255
DEBUG Checking PHPLS_ALLOW_XDEBUG
DEBUG The xdebug extension is loaded (2.7.2)
DEBUG No restart (PHPLS_ALLOW_XDEBUG=1)
PHP Fatal error: Method AdvancedJsonRpc\ErrorResponse::__toS
tring() must not throw an exception, caught AdvancedJsonRpc\Error: Malformed UTF-8 characters, possibly incorrectly encoded in C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\felixfbecker\language-server\src\Message.php on line 0
PHP Stack trace:
PHP 1. {main}() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\felixfbecker\l
anguage-server\bin\php-language-server.php:0
PHP 2. Sabre\Event\Loop\run() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\felixfbecker\language-
server\bin\php-language-server.php:55
PHP 3. Sabre\Event\Loop\Loop->run() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\sabre\event\lib\Loop\functions.php:122
PHP 4
. Sabre\Event\Loop\Loop->tick() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\sabre\event\lib\Loop\Loop.php:194
PHP 5. Sabre\Event\Loop\Loop->runNextTicks() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\sabre\even
t\lib\Loop\Loop.php:215
PHP 6. Sabre\Event\Promise->Sabre\Event\{closure:C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\sabre\event\lib\Promise.php:238-266}() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\sabre\event\lib\Loop\Loop.php:26
1
PHP 7. Sabre\Event\{closure:C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\sabre\event\lib\coroutine.php:73-76}
() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\sabre\event\lib\Promise.php:242
PHP 8. Generator->throw() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-int
ellisense-2.3.10\vendor\sabre\event\lib\coroutine.php:74
PHP 9. LanguageServer\LanguageServer->LanguageServer\{closure:C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\felixfbecker\language-server\src\LanguageServer.php:122-154}() C:\Users\syfxl\.v
scode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\sabre\event\lib\coroutine.php:74
PHP 10. LanguageServer\ProtocolStreamWriter->write() C:\Users\syfxl\.vscode-insiders\extensi
ons\felixfbecker.php-intellisense-2.3.10\vendor\felixfbecker\language-server\src\LanguageServer.php:152
PHP 11. LanguageServer\Message->__toString() C:\Users\syfxl\.vscode-insiders\extensions\felixfbecker.php-intellisense-2.3.10\vendor\felixfbecker\language-serve
r\src\ProtocolStreamWriter.php:46
//.....
public function write(Message $msg): Promise
{
// if the message queue is currently empty, register a write handler.
if (empty($this->messages)) {
Loop\addWriteStream($this->output, function () {
$this->flush();
});
}
$promise = new Promise();
$this->messages[] = [
'message' => 'msg',
'promise' => $promise
];
return $promise;
}
//......
DEBUG Checking PHPLS_ALLOW_XDEBUG
DEBUG The xdebug extension is loaded (2.7.2)
DEBUG No restart (PHPLS_ALLOW_XDEBUG=1)