Score:0

จะแสดงอักขระเน้นเสียงอย่างถูกต้องในผลลัพธ์ check_nrpe ตามสคริปต์ Powershell ได้อย่างไร

ธง ai

ฉันมีสคริปต์ Powershell แบบกำหนดเองที่เรียกโดย Nagios โดยใช้ "check_nrpe"ขณะนี้ข้อความผลลัพธ์การตรวจสอบทั้งหมดที่มีอักขระพิเศษ เช่น 'è', 'é' หรือ 'Ã' ไม่แสดงอย่างถูกต้องเมื่อผลการตรวจสอบแสดงบน Nagios

จะอนุญาตให้แสดงอย่างถูกต้องได้อย่างไร

ตรวจสอบคำสั่ง

$USER1$/check_nrpe -H server.tld -c check_foo -a 7 7 7  

เรียกใช้สคริปต์บน nsclient.ini

[/settings/สคริปต์ภายนอก/สคริปต์]
check_foo = cmd /c echo X:\scripts_\check-foo.ps1 -arg1 "$ARG1$" -arg2 "$ARG2$" -arg3 "$ARG3$"; exit($lastexitcode) | powershell.exe - คำสั่ง -

ผลที่คาดว่าจะได้รับ

สำคัญ - Vérification échouée

ผลลัพธ์จริง

# UTF-8 BOM (กุย)
CRITICAL - การเลือก Vrification

# UTF-8 BOM (CLI)
สำคัญ - V,rification,choue,

# UTF-8 (กุย)
CRITICAL - VǸrification ǸchoueǸ 

ขณะนี้สคริปต์ Powershell ของฉันถูกเรียกจากระยะไกลด้วย "check_nrpe" จากเครื่องตรวจสอบ Linux CentOS 7 และ NSClient ++ บนเซิร์ฟเวอร์เป้าหมาย (เซิร์ฟเวอร์ Windows 2016) สคริปต์นั้นเข้ารหัสเป็น "UTF-8 BOM"

Archemar avatar
mx flag
คุณลองเข้ารหัสใน `ISO8859-P1` แล้วหรือยัง
donmelchior avatar
ai flag
@Archemar: สคริปต์ Powershell เข้ารหัสด้วยเอาต์พุต ISO8859-1: CRITICAL - V?rification ?choue?
donmelchior avatar
ai flag
ฉันพยายามเพิ่ม "encoding = utf8" ในส่วน [/settings/NRPE/server] ของไฟล์กำหนดค่า "nsclient.ini" สำหรับ NSClient++ ในขณะที่เก็บการเข้ารหัสสคริปต์ Powershell ใน "UTF-8 NOM": ปัญหายังคงอยู่
Score:1
ธง cn

ปิดใช้งานการเข้ารหัส nsclient.ini utf8 ของคุณ

[/settings/NRPE/เซิร์ฟเวอร์]
;การเข้ารหัส = utf8

ในการใช้งานสคริปต์ของคุณ

[คอนโซล]::OutputEncoding = [System.Text.Encoding]::UTF8

ส่งออกผลลัพธ์ของคุณด้วย: (แทนการเขียนเอาต์พุตหรือโฮสต์การเขียน)

[คอนโซล]::WriteLine("ééé")

ใช้งานได้สำหรับฉัน รับจากที่นี่

Score:0
ธง cn

ทางออกที่ดีกว่า ปิดใช้งานการเข้ารหัส utf8 ใน nsclient.ini ตามด้านบน

และแก้ไขการห่อสคริปต์ ps1 ของคุณใน nsclient.ini

ps1=cmd /c echo ลอง {$OutputEncoding = [System.Console]::OutputEncoding = [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8;scripts\%SCRIPT% -- %ARGS %; exit($lastexitcode)} จับ {echo $_.Exception.Message; ทางออก 3} | powershell.exe - คำสั่ง -

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา