.ini
ไฟล์Joomla จำเป็นต้องได้รับการบันทึกเป็น UTF-8
หลังจากแก้ไขฉันไม่แน่ใจว่าไฟล์เป็น UTF-8 หรือไม่
มีคำสั่ง Linux เหมือนfile
หรือคำสั่งไม่กี่คำที่จะบอกว่าเป็นไฟล์ UTF-8 หรือไม่?
.ini
ไฟล์Joomla จำเป็นต้องได้รับการบันทึกเป็น UTF-8
หลังจากแก้ไขฉันไม่แน่ใจว่าไฟล์เป็น UTF-8 หรือไม่
มีคำสั่ง Linux เหมือนfile
หรือคำสั่งไม่กี่คำที่จะบอกว่าเป็นไฟล์ UTF-8 หรือไม่?
คำตอบ:
คุณสามารถกำหนดการเข้ารหัสไฟล์ด้วยคำสั่งต่อไปนี้:
file -bi filename
file -I filename
(-I คือเมืองหลวง i)
นั่นคือใช้isutf8
คำสั่งจากแพ็คเกจmoreutils
แหล่งที่มา: คุณจะทราบได้อย่างไรว่าไฟล์เข้ารหัส UTF-8 หรือไม่
find -type f -exec isutf8 {} +
เพราะมันยังอ้างอิงชื่อไฟล์ (และด้วยการใช้งานfind ... -exec ... +
ก็รวดเร็ว)
ห้ามใช้file
คำสั่ง มันไม่ได้ตรวจสอบไฟล์ทั้งหมดและมันก็คาดเดาโดยทั่วไป บางครั้งมันก็ให้คำตอบที่ไม่ถูกต้อง
คุณสามารถตรวจสอบว่าไฟล์เกิดขึ้นเมื่อผ่านการเข้ารหัส UTF-8 ดังนี้:
$ iconv -f utf8 <filename> -t utf8 -o /dev/null
โค้ดส่งคืนค่าศูนย์หมายความว่าผ่าน UTF8 โค้ดส่งคืนที่ไม่เป็นศูนย์หมายความว่า UTF8 ไม่ถูกต้อง
เป็นไปไม่ได้ที่จะทราบว่าจำเป็นต้องส่งออกไฟล์โดยใช้รูปแบบการเข้ารหัสเฉพาะใด ๆ หรือไม่เนื่องจากรูปแบบการเข้ารหัสบางส่วนทับซ้อนกัน ในการทำเช่นนั้นจะต้องมีการฝังข้อมูลเมตาลงในไฟล์และจากนั้นคุณจะไว้วางใจใครก็ตามที่สร้างไฟล์นั้นแทนที่จะตรวจสอบด้วยตัวคุณเอง ... และคุณควรตรวจสอบด้วยตัวเองเสมอ
อีกวิธีหนึ่งคือการใช้recode
ซึ่งจะออกโดยมีข้อผิดพลาดหากพยายามถอดรหัส UTF-8 และพบอักขระที่ไม่ถูกต้อง
if recode utf8/..UCS < "$FILE" >/dev/null 2>&1; then
echo "Valid utf8 : $FILE"
else
echo "NOT valid utf8: $FILE"
fi
file
เป็นตัวอย่างของโปรแกรมที่ทำการเดาอย่างชาญฉลาด