【发布时间】:2021-01-28 19:18:45
【问题描述】:
我需要使用 powershell 将数据保存在数据库中。有时数据中包含表情符号。
DB:在 DB 方面,一切都应该没问题。属性设置为 NVARCHAR,这使得保留表情符号成为可能。当我手动插入数据时,我查询它们后会显示表情符号(????????)。 我用 SSMS 中的示例数据对其进行了测试,效果很好。
Powershell:在 Powershell 中准备 SQL 语句时,我注意到表情符号是用 UTF8 (ðŸ¤ðŸ'°) 解释的。基本上是胡言乱语。
是否有必要从 UTF8 转换为 Unicode?我怎样才能将表情符号保留为??????????而不是 ðŸ¤ðŸ'°/1f600
【问题讨论】:
-
“从 UTF8 转换为 Unicode”这句话毫无意义 - Unicode 是代码点的抽象列表,而 UTF8 是以二进制形式表示这些代码点的方式之一。可能发生的是双重编码,或者将二进制格式误解为不同的编码。
-
感谢您的澄清。尽管如此,表情符号在 powershell 中以 UTF-8 表示。我想让表情符号表示持久化,而不是 UTF8/Unicode 值
-
不,它们不会“以 UTF-8 表示”,也没有“表情符号表示”之类的东西 - 数据库不是存储小图像,而是将字符存储在一些二进制编码,可能是 UTF-8 或 UTF-16。您所看到的是二进制表示被误解,并显示为如您所说的胡言乱语。这听起来可能有些迂腐,但更好地理解所涉及的概念将有助于您识别和解决问题。
-
?????????????????????????????????????????? ????????????????????????????????????????????????
标签: powershell unicode encoding utf-8 emoji