python - 如何使 VS 代码正确编码/解码日文字符
问题描述
我在 VS 代码中遇到了日文字符的有线问题。
我正在做的只是用日语创建一个字符串并显示它。
这是代码:
str = "こんにちは"
print(str)
这与终端完美配合
>>> str = "こんにちは"
>>> print(str)
こんにちは
我的终端编码是 cp932:
PS D:\WorkSpace\> chcp
現在のコード ページ: 932
但是,如果我创建一个 python 脚本并使用相同的代码,则输出完全不同。
# coding: cp932
str = "こんにちは"
print(str)
输出是
PS D:\WorkSpace\> python test.py
、ウ、ヒ、チ、マ
如果我在开始时删除了 cp932 编码部分,则会收到以下错误:
File "test.py", line 2
SyntaxError: Non-UTF-8 code starting with '\xa4' in file test.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
如果我使用 'utf-8' 作为脚本文件的编码,我会收到以下错误:
File "test.py", line 2
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xa4 in position 0: invalid start byte
我完全不知道为什么会这样,有人知道吗?
解决方案
我发现了问题,我的 vscode 的默认编码已设置为 GBK,这就是原因。
在我将编码更改为 utf-8 后,问题就解决了。
希望这可以帮助将来的人。
推荐阅读
- octave - 是否可以更改 Octave GUI 中的默认注释字符串?
- javascript - 删除由换行引起的空白
- terraform - 如何解决 azurerm_backup_protected_vm 中的超时错误?
- python - 通过添加基于先前行的值在 pandas 中生成新行
- numpy - 如何在 GEKKO 中级中使用 np.log 或 np.exp
- c - 当我尝试从二进制文件中读取结构时,我得到(检测到堆栈粉碎)
- sql - SQL Server如何在排除重复值的同时插入多个值
- javascript - //;\n2;3;4 的正则表达式模式
- laravel - 使用数据透视表进行 API 过滤
- swift - 如何在 UICollection 视图中重新加载部分