2016-05-18 9 views
0

の始まりを探して「Y」は無効な文字は、テンプレートの解析に失敗しました:エラーはJSONをパース:無効な文字「ÿ」の値は、テンプレートの解析に失敗しました:エラーはJSONをパース:値

の始まりを探してイムは、私が

$Parsed_json | ConvertTo-Json -Depth 999 -Compress | 
    Out-File $nameOfJsonFile -Force 

使用する場合、このエラーを取得し、この:

は、テンプレートの解析に失敗しました:エラーの解析JSONを:

$Parsed_json | ConvertTo-Json -Depth 999 | Out-File $nameOfJsonFile -Force 

JSONオンラインバリデータは私のJSONの承認を使用した場合、無効な文字「Y」は値

の始まりを探しています。

このトピックに関するこれまでの調査では、Out-Fileを使用すると自分自身を印刷するUnicode文字がこの問題を作成しています。私のJSONファイルのエンコーディングはASCIIです。この問題に関する助けがあれば、非常に感謝しています。

+0

は場所を正確にあなたがこのエラーを取得している場合は/? '$ Parsed_json'を変換するとき?ファイルを書くときは?またはあなたが書いたファイルを読むとき?後者の場合:実際にエラーをスローするコードを表示します。そして、 'Set-Content'(デフォルトはASCII出力)や' Out-File -Encoding Ascii'(デフォルトのUTF-8エンコーディングを上書きする)を試しましたか? –

+0

Out-fileを-3ncodingパラメータとともに使用すると、問題が解決されます。御時間ありがとうございます。 –

答えて

1

これは明らかにエンコードの問題です。解決方法は、ASCIIエンコーディングを使用して出力ファイルを作成することです(実際にはANSIエンコーディングですが、パラメータ引数は簡略化のためにAsciiという名前が付けられています)。このように:

$Parsed_json | ConvertTo-Json -Depth 999 -Compress | 
    Out-File $nameOfJsonFile -Encoding Ascii -Force 

またはこのような

は( Set-Contentは、デフォルトではASCIIエンコーディングを使用しています):

$Parsed_json | ConvertTo-Json -Depth 999 -Compress | 
    Set-Content $nameOfJsonFile -Force 
+0

うまく動作します、Ansgar Wiechersありがとう –

関連する問題