كيف يمكنني ترميز رموز أحرف Unicode في سلسلة بوويرشيل الحرفي؟
-
20-08-2019 - |
سؤال
وكيف يمكنني ترميز حرف Unicode U + 0048 (H)، ويقول، في سلسلة بوويرشيل؟
في C # أود أن تفعل هذا فقط: "\u0048"
، ولكن هذا لا يبدو أن العمل في بوويرشيل
المحلول
واستبدال '\ ش' مع '0X "ويطرح للSystem.Char:
PS > [char]0x0048
H
ويمكنك أيضا استخدام "$ ()" بناء جملة لتضمين حرف Unicode إلى سلسلة:
PS > "Acme$([char]0x2122) Company"
AcmeT Company
وأين T هو تمثيل بوويرشيل من الطابع للعلامات التجارية غير المسجلة.
نصائح أخرى
واستنادا إلى وثائق، بوويرشيل الأساسية 6.0 يضيف دعما لهذا تسلسل هروب:
PS> "`u{0048}"
H
ويرى <وأ href = "https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_special_characters؟view=powershell-6#unicode-character-ux" يختلط = "noreferrer"> https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_special_characters؟view=powershell-6#unicode-character-ux
وربما ليست هذه هي الطريقة بوويرشيل، ولكن هذا هو ما أقوم به. أجد أن تكون أكثر نظافة.
[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048ello") # Prints Hello