Comment créer une liste arborescente qui supporte Unicode sur Windows?

Décrivez le problème/l’erreur/la question

Je veux créer une liste arborescente d’un répertoire, mais le problème est que si le dossier utilise des caractères non-anglais ou des caractères spéciaux, ils s’affichent sous forme de ?. J’ai utilisé le nœud Execute Command pour exécuter chcp 65001>nul && tree "C:\Users\Administrator\Desktop\OST\Complete[Nemuri] Kiyoura Natsumi 清浦夏実 (2007-2026) [FLAC]" /f /a. Cela s’affiche correctement si je l’exécute localement sur Windows cmd et que je change la police, mais cela ne fonctionne pas dans n8n car il ne semble pas utiliser la police configurée dans Windows cmd. Je me demande donc s’il existe une solution ou un moyen alternatif de créer une liste arborescente qui supporte l’unicode sur Windows ?

Quel est le message d’erreur (le cas échéant) ?

Veuillez partager votre workflow

Partagez la sortie retournée par le dernier nœud

Informations sur votre configuration n8n

  • Version de n8n : 2.19.5
  • Base de données (par défaut : SQLite) : par défaut
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) : par défaut
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : npm
  • Système d’exploitation : Windows Server 2022

Peux-tu essayer ça, @Ruriko ?

{
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ],
      "id": "34c7e9d7-0b0c-4b1e-b805-4b17882b2a2a",
      "name": "When clicking \u2018Execute workflow\u2019"
    },
    {
      "parameters": {
        "command": "powershell -NoProfile -Command \"\\ { [Console]::OutputEncoding = [System.Text.Encoding]::UTF8; $OutputEncoding = [System.Text.Encoding]::UTF8; $targetPath = 'C:\\Users\\Administrator\\Desktop\\OST\\Complete\\[Nemuri] Kiyoura Natsumi \u6e05\u6d66\u590f\u5b9f (2007-2026) [FLAC]'; function Show-Tree { param([string]$Path, [string]$Indent = '') $items = Get-ChildItem -LiteralPath $Path -ErrorAction SilentlyContinue; if ($null -eq $items) { return }; $last = $items.Count - 1; for ($i = 0; $i -le $last; $i++) { $item = $items[$i]; $isLast = ($i -eq $last); $branch = if ($isLast) { '+---' } else { '+---' }; $connector = if ($isLast) { '    ' } else { '|   ' }; Write-Output ($Indent + $branch + $item.Name); if ($item.PSIsContainer) { Show-Tree -Path $item.FullName -Indent ($Indent + $connector) } } }; Write-Output 'Folder PATH listing'; Write-Output ('Path: ' + $targetPath); Show-Tree -Path $targetPath }\"
      },
      "type": "n8n-nodes-base.executeCommand",
      "typeVersion": 1,
      "position": [
        208,
        0
      ],
      "id": "af4d7298-a27e-4a8b-a2fc-b7e0a3ba2a00",
      "name": "Execute Command"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "e011378d-a08a-43d5-8215-4c80eb835655",
              "name": "stdout",
              "value": "={{ $json.stdout }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        416,
        0
      ],
      "id": "6002a469-a22b-4005-b8c5-0c5762f3ec6f",
      "name": "Edit Fields"
    }
  ],
  "connections": {
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Execute Command",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Command": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "instanceId": "04aa2c89475794a281c2b0c2499df9644f911626b8da471682ca650caf48d1cb"
  }
}

Pourrais-tu le mettre à jour pour que ça fonctionne si le chemin contient des guillemets simples ou doubles ?