powershell腳本中的回傳值儲存在字串中而不是utf8中

powershell腳本中的回傳值儲存在字串中而不是utf8中

我正在嘗試使用 tabula 和 powershell 從 pdf 中提取表格。當我直接在 powershell 控制台中輸入命令時,我得到了顯示的預期結果(以帶有變音符號的 utf8 格式)

java -jar "./tabula-java/$tabulaVersion" --spreadsheet -a 114,53,180,556 "./table.pdf"

但是當我將它放入字串變數然後寫入檔案時,變音符號變得亂碼

$text = java -jar "./tabula-1.0.1-jar-with-dependencies.jar" --spreadsheet -a 114,53,180,556 "./table.pdf"   
Set-Content -Path "./file.txt" -Value $text

即使我在控制台中列印變量,變音符號也無法正確顯示

$text = java -jar "./tabula-1.0.1-jar-with-dependencies.jar" --spreadsheet -a 114,53,180,556 "./table.pdf"   
Write-Output $text  

有沒有辦法將其儲存在字串變數中(因此能夠操作內容)並將其寫入檔案並保持 utf8(無 BOM)編碼?

使用來自的方法https://stackoverflow.com/a/5596984/1786528也不適合我

$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($filepath, $text, $Utf8NoBomEncoding)

我沒有收到錯誤,但也沒有建立文件或新增行。

更新:

[System.IO.File]::WriteAllLines創建一個檔案(沒有BOM的UTF格式),我只是使用了相對路徑並且沒有設定[System.Environment]::CurrentDirectory = (Get-Location).Path.但元音符號仍然不正確。

額外細節

情況1: 直接在控制台輸出,例如

java -jar "./tabula-1.0.1-jar-with-dependencies.jar" --spreadsheet "./table.pdf" 

案例2: 輸出儲存在變數中,然後列印在控制台中,例如

$text = java -jar "./tabula-1.0.1-jar-with-dependencies.jar" --spreadsheet "./table.pdf"   
Write-Output $text 

案例3: 輸出儲存在變數中,但帶有-D"file.encoding=UTF-8",然後在控制台中列印,例如

$text = java -D"file.encoding=UTF-8" -jar "./tabula-1.0.1-jar-with-dependencies.jar" --spreadsheet "./table.pdf"   
Write-Output $text 

更新:

$OutputEncoding= US-ASCII 和 [System.Console]::OutputEncoding= OEM 美國 (IBM437)

案例4: 直接在控制台輸出([System.Console]::OutputEncoding事先更改),例如

[System.Console]::OutputEncoding = System.Text.Encoding]::GetEncoding(1252)
java -jar "./tabula-1.0.1-jar-with-dependencies.jar" --spreadsheet "./table.pdf" 

案例5: 輸出儲存在變數中,然後在控制台中列印([System.Console]::OutputEncoding事先更改),例如

[System.Console]::OutputEncoding = System.Text.Encoding]::GetEncoding(1252)
$text = java -jar "./tabula-1.0.1-jar-with-dependencies.jar" --spreadsheet "./table.pdf"   
Write-Output $text 

這將導致變音符號

pdf    case 1    case 2     case 3    case 4     case 5
 ä      ä         Σ          ├ñ        „          ä
 ö      ö         ÷          ├╢        ”          ö
 ü      ü         ⁿ          ├╝                  ü

相關內容