簡體   English   中英

從命令提示符運行時,程序拋出(文件中以“\\xff”開頭的非 UTF-8 代碼)

[英]Program throws (Non-UTF-8 code starting with '\xff' in file) when running from command prompt

下面是代碼:

def add(a,b):
    return a + b
while True:
    try:
        a=float(input('Please enter a number'))
        break
    except:
        print ('Invalid Number, please re-enter')
while True:
    try:
        b=float(input('Please enter a number'))
        break
    except:
        print ('Invalid Number, please re-enter')
print(add(a,b))

我收到一個錯誤,因為我在 PowerShell 中創建了一個 python 文件,但我正在 VS 代碼中編輯它。 顯然他們使用沖突的編碼模式。 我的解決方案:我刪除了原始文件並使用 VS 代碼創建了一個新文件。 這是詳細解釋問題所在的鏈接。 https://docs.microsoft.com/en-us/powershell/scripting/dev-cross-plat/vscode/understanding-file-encoding?view=powershell-7.1

我認為問題可能在於您如何從命令行調用它。 您應該將目錄更改為 Python 解釋器所在的位置,然后將其指向腳本

c:\users\test>cd c:\python2.7
c:\python2.7>python.exe "c:\users\test\desktop\test_script.py"

只需使用 python exe 的路徑,然后用腳本的路徑替換我的桌面。

我遇到了問題

我通過將文件的編碼更改為 utf-8 解決了它

  • 使用 windows 的“記事本”,單擊“另存為”,然后您會注意到保存按鈕左側的編碼部分。 選擇utf-8。 然后保存文件。
  • 在“notepad++”中,您可以直接在程序中通過編寫“編碼”的頂部部分更改編碼。 將其更改為“utf-8”
  • 或者在右側最低底部的 VSCode 中,您會看到 utf-8 或 utf-16 或其他。 您可以在那里更改文件的編碼。

就像上面的評論所說,我也從 PowerShell 創建了該文件

  • wsl 觸摸文件名將創建 utf-8(wsl 是 Windows 上的 linux)
  • echo "" > 文件名將創建 utf-16

問題是您的 .py 文件采用 utf-16 編碼。 在運行 python 腳本 (.py) 文件時,默認情況下它應該是 utf-8 編碼。

就我而言:我使用 cmd/PowerShell 提示符創建了一個 .py 文件

CMD prompt> echo #my First program > firstProgram.py

要解決此問題,請在記事本中打開文件,選擇save as並將編碼從 utf-16 更改為 utf-8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM