You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中将SQLite查询结果转JSON导出文件出现特殊字符问题

问题原因及解决方法

你的问题出在对已经序列化好的JSON字符串再次调用了ConvertTo-Json:

  • $DbDataJson已经是通过ConvertTo-Json生成的合法JSON字符串,你再次将它传入ConvertTo-Json,PowerShell会把这个字符串当作普通文本重新序列化,导致双引号被转义成",同时换行符也被额外转义。

正确的导出方式

方式1:直接写入已生成的JSON变量

既然$DbDataJson已经是正确的JSON内容,直接用Out-File或者Set-Content写入即可,不需要再次转换:

$DbDataJson | Out-File $myJsonFile -Encoding utf8
# 或者用Set-Content,更适合文本文件场景
$DbDataJson | Set-Content $myJsonFile -Encoding utf8

方式2:一步完成转换+写入(推荐)

跳过中间变量,直接将处理后的DataTable转换成JSON并写入文件,避免二次处理的风险:

$DbDataTable | Select-Object * -ExcludeProperty RowError, RowState, Table, ItemArray, HasErrors | 
  ConvertTo-Json -Depth 100 -EscapeHandling Default | 
  Out-File $myJsonFile -Encoding utf8

补充说明

  • 加上-Encoding utf8参数可以确保生成的JSON文件是UTF-8编码,避免不同环境下的乱码问题;
  • Test-Json验证通过的$DbDataJson本身是正确的,只是后续的二次转换破坏了它的结构。

内容的提问来源于stack exchange,提问作者Tribun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 00:00:10