كيف يمكنني ترميز رموز أحرف Unicode في سلسلة بوويرشيل الحرفي؟

StackOverflow https://stackoverflow.com/questions/1056692

سؤال

وكيف يمكنني ترميز حرف 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top