【问题标题】:Hidden new line characters in string?在字符串中隐藏换行符?
【发布时间】:2017-07-27 15:55:52
【问题描述】:

我收到来自 API 的响应,其中似乎包含换行符。但是,我找不到实际存在的字符,因此无法拆分此字符串。

$response = curl.exe POST --silent --user $creds --data-raw $request $url
$response.contains("`f")
$response.contains("`r")
$response.contains("`n")
$response

输出:

错误的 错误的 错误的 "92837F755","BES","780532219" "46431P106","BES","!NA" "Y2069P309","BES","!NA"

【问题讨论】:

  • 试试$Reponse.Trim() 这将删除行首和行尾的所有空格/等。

标签: string powershell newline


【解决方案1】:

$response 包含一个字符串数组。回显数组一次显示一个字符串,即使单个字符串不包含您正在测试的任何字符。

如果您希望将响应作为没有换行符的单个字符串,您可以简单地将变量放在双引号中:

"$response"

默认情况下,这会将数组元素与它们之间的空格连接起来。如果你不想这样,你可以先设置$OFS = '',或者简单地用一个空字符串加入数组:

$response -join ''

-join $response

如果您想要使用换行符的响应,您可以通过Out-String 管道输出curl

$response = curl.exe ... | Out-String

【讨论】:

  • 你可以做的快速检查是$Response.GetType(),它会显示你有一个数组而不是一个字符串。
猜你喜欢
  • 2013-07-09
  • 2015-06-02
  • 2013-02-21
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 2013-11-04
相关资源
最近更新 更多