Sql server 2008 Powershell将字符转换为ASCII

Sql server 2008 Powershell将字符转换为ASCII,sql-server-2008,powershell,extended-ascii,Sql Server 2008,Powershell,Extended Ascii,目前,我有一个powershell进程正在扫描SQL Server表,并正在读取包含文本的列。目前,我们在扩展ASCII区域中有一些字符,这些字符导致我们的下游进程中断。我最初是在SQL Server中识别这些差异的,但它在文本解析方面很糟糕,所以我决定编写一个powershell脚本来实现这一点,它结合了正则表达式。我将发布代码,以及帮助其他迷失的灵魂寻找这样一个正则表达式 $x = [regex]::Escape("\``~!@#$%^&*()_|{}=+:;`"'<,>

目前,我有一个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)
在SQL Server中

select ASCII('–') --result 150
select ASCII(' ') --result 160
powershell中的内容将帮助您在ASCII查找中获得与SQL Server相同的结果(如果有的话)

TLDR;因此,我的问题是,上述方法是否是在powershell中查找ASCII值的正确方法,因为它适用于大多数值,但不适用于ASCII值150(这是word中的长破折号)。

在SQL Server中

select UNICODE('–')
将返回8211


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

啊,很遗憾它是这样工作的,但现在SQL Server和Powershell之间的一切都是匹配的。
select UNICODE('–')