Valor de retorno en el script de PowerShell almacenado en una cadena, no en utf8

Valor de retorno en el script de PowerShell almacenado en una cadena, no en utf8

Estoy intentando extraer tablas de un pdf usando tabula y powershell. Cuando ingreso el comando directamente en la consola de PowerShell, aparece el resultado esperado (en utf8 con símbolos de diéresis)

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

Pero cuando lo pongo en una variable de cadena y luego escribo en un archivo, los símbolos de diéresis se vuelven un galimatías.

$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

Incluso si imprimo la variable en la consola, los símbolos de diéresis no se muestran correctamente

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

¿Hay alguna manera de almacenarlo en una variable de cadena (y por lo tanto poder manipular el contenido) y escribirlo en un archivo manteniendo la codificación utf8 (sin BOM)?

Utilizando el enfoque dehttps://stackoverflow.com/a/5596984/1786528a mi tampoco me funciona

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

No recibo ningún error, pero tampoco se crea ningún archivo ni se agrega ninguna línea.

Actualizar:

[System.IO.File]::WriteAllLinescrea un archivo (en UTF sin BOM), solo usé una ruta relativa y no configuré [System.Environment]::CurrentDirectory = (Get-Location).Path. Pero, aun así, los símbolos de diéresis no son correctos.

Detalles adicionales

caso 1: salida directamente en la consola, por ejemplo

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

caso 2: salida almacenada en variable, luego impresa en la consola, por ejemplo

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

caso 3: salida almacenada en variable pero con -D"file.encoding=UTF-8", luego impresa en la consola, por ejemplo

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

Actualizar:

$OutputEncoding= US-ASCII y [System.Console]::OutputEncoding= OEM Estados Unidos (IBM437)

caso 4: salida directamente en la consola (con cambios [System.Console]::OutputEncodingprevios), por ejemplo

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

caso 5: salida almacenada en variable, luego impresa en la consola (con cambios [System.Console]::OutputEncodingprevios), por ejemplo

[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 

Esto dará como resultado esto para los símbolos de diéresis

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

información relacionada