Làm cách nào để mã hóa ký tự Unicode U + 0048 (H), trong chuỗi PowerShell?Làm cách nào để mã hóa các mã ký tự Unicode trong chuỗi ký tự PowerShell?
Trong C# tôi chỉ làm điều này: "\u0048"
, nhưng điều đó dường như không hoạt động trong PowerShell.
Làm cách nào để mã hóa ký tự Unicode U + 0048 (H), trong chuỗi PowerShell?Làm cách nào để mã hóa các mã ký tự Unicode trong chuỗi ký tự PowerShell?
Trong C# tôi chỉ làm điều này: "\u0048"
, nhưng điều đó dường như không hoạt động trong PowerShell.
Thay thế '\ u' với '0x' và bỏ nó vào System.Char:
PS > [char]0x0048
H
Bạn cũng có thể sử dụng "$()" cú pháp để nhúng một ký tự Unicode vào một chuỗi:
PS > "Acme$([char]0x2122) Company"
AcmeT Company
Trong đó T là đại diện của PowerShell về ký tự cho nhãn hiệu không được đăng ký.
Cảm ơn. Điều đó hoạt động. Tôi có thể sử dụng nó như thế này: [char] 0x0048 + "ello", cho phép "Hello". –
Bạn thậm chí có thể viết một hàm nhỏ: hàm C ($ n) {[char] [int] "0x $ n"}. Mà bạn có thể sử dụng trong một chuỗi như sau: "$ (C 48) ello World." Không lý tưởng nhưng có lẽ gần hơn một chút để thoát khỏi \ u. – Joey
Có lẽ đây không phải là cách PowerShell, nhưng đây là những gì tôi làm. Tôi thấy nó sạch hơn.
[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048ello") # Prints Hello
Mã hóa đầu ra của bạn được đặt là gì? ($ OutputEncoding) –
Đó là ascii của chúng tôi. Nhưng U + 0048 nên được mã hóa trong đó. Tôi thực sự đang cố gắng mã hóa một ký tự thoát (U + 001B). –