gpt4 book ai didi

sql-server-2008 - Powershell将字符转换为ASCII

转载 作者:行者123 更新时间:2023-12-03 00:04:17 45 4
gpt4 key购买 nike

目前,我有一个Powershell进程正在扫描SQL Server表并读取包含文本的列。当前,我们具有扩展ASCII域中的字符,这些字符导致下游进程中断。我本来是想知道SQL Server中的这些差异,但是在文本解析中却很糟糕,因此我决定编写一个Powershell脚本来执行此操作,以结合正则表达式。我还将发布该代码,以帮助其他迷路的人寻找这种正则表达式。

$x = [regex]::Escape("\``~!@#$%^&*()_|{}=+:;`"'<,>.?/-")
$y = "([^A-z0-9 \0x005D\0x005B\t\n"+$x+"])"
$a = [regex]::match( $($Row[1]), $y)

问题出在我想在电子邮件中显示某些ascii值并说我正在清理数据时。数字与SQL Server不同。警告我不确定您的结果是否与从您的浏览器复制的结果相同,因为这些是扩展的ascii。

在PowerShell中
[int]"–"[-0]; #result 8211 that appears to be wrong
[int]" "[-0]; #result 160 this appears to be right

在SQL Server中
select ASCII('–') --result 150
select ASCII(' ') --result 160

如果有的话,powershell中的内容将帮助您在ASCII查询中获得与SQL Server相同的结果。

TLDR;所以我的问题是,上述方法是否是在powershell中查找ASCII值的正确方法,因为它适用于大多数值,但不适用于ASCII值150(这是来自单词的长划线)。

最佳答案

在SQL Server中,

select UNICODE('–')

将返回8211。

除了I / O,我不认为PowerShell支持ANSI。它内部使用Unicode。

关于sql-server-2008 - Powershell将字符转换为ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11110526/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com