js调用python脚本 print打印的汉字是乱码
时间: 2023-08-11 11:56:41 浏览: 154
解决vscode python print 输出窗口中文乱码的问题
当你在 JavaScript 中调用 Python 脚本并且打印的汉字出现乱码时,可能是因为字符编码不一致所导致的。
要解决这个问题,你可以在 Python 脚本中使用正确的字符编码,并在 JavaScript 中设置合适的编码来处理返回的结果。
下面是一个示例代码:
JavaScript 代码:
```javascript
const { PythonShell } = require('python-shell');
// 创建 PythonShell 实例
let pyshell = new PythonShell('your_script.py');
// 设置编码为 UTF-8
pyshell.defaultOptions = { encoding: 'utf-8' };
// 发送消息给 Python 脚本
pyshell.send('Hello, Python!');
// 接收来自 Python 脚本的消息
pyshell.on('message', function (message) {
console.log(message);
});
// 结束 Python 进程
pyshell.end(function (err) {
if (err) {
throw err;
}
console.log('Python script finished.');
});
```
Python 脚本(your_script.py):
```python
import sys
# 接收来自 JavaScript 的消息
message = sys.stdin.readline()
# 将消息原样返回给 JavaScript
print(message)
```
在上面的示例中,我们使用了 `python-shell` 模块来在 JavaScript 中调用 Python 脚本。通过将 `encoding` 设置为 `'utf-8'`,我们确保了正确的字符编码。
请注意,在 Python 脚本中,我们使用 `sys.stdin.readline()` 来接收来自 JavaScript 的消息,并使用 `print()` 将消息原样返回给 JavaScript。
这样,你就可以在 JavaScript 中打印来自 Python 脚本的汉字而不会出现乱码了。确保 Python 脚本和 JavaScript 代码中的字符编码保持一致,通常选择 UTF-8 编码是一种较为常见和可靠的方式。
阅读全文