بوويرشيل:إعداد الترميز لخط أنابيب Get-Content
-
09-06-2019 - |
سؤال
لدي ملف محفوظ باسم UCS-2 Little Endian وأريد تغيير الترميز لذا قمت بتشغيل الكود التالي:
cat tmp.log -encoding UTF8 > new.log
الملف الناتج لا يزال في UCS-2 Little Endian.هل هذا لأن خط الأنابيب دائمًا بهذا التنسيق؟هل هناك طريقة سهلة لتوصيل هذا إلى ملف جديد باسم UTF8؟
المحلول
كما هو مقترح هنا:
Get-Content tmp.log | Out-File -Encoding UTF8 new.log
نصائح أخرى
سأفعل ذلك على النحو التالي:
get-content tmp.log -encoding Unicode | set-content new.log -encoding UTF8
ما أفهمه هو أن خيار -encoding يحدد التشفير الذي يجب قراءة الملف أو كتابته فيه.
تحميل المحتوى من ملف XML مع الترميز.
(الحصول على المحتوى - ترميز UTF8 $fileName)
إذا كنت تقرأ ملف XML، فإليك طريقة أفضل تتكيف مع تشفير ملف XML الخاص بك:
$xml = New-Object -Typename XML
$xml.load('foo.xml')
لا تنتمي إلى StackOverflow