สตริงที่ใช้ \u เป็นตัวแทน UTF-8 ของ codepoint ใน php.ini

ใน คู่มือ PHP ระบุว่า

\u{[0-9A-Fa-f]+} ลำดับของอักขระที่ตรงกับนิพจน์ทั่วไปคือโค้ดพอยต์ Unicode ซึ่งจะส่งออกไปยังสตริงเป็นการแทนค่า UTF-8 ของโค้ดพอยต์นั้น (เพิ่มใน PHP 7.0.0)

echo "\101";  //Output A

echo "\x41";  // Output A

echo "\u0041"; //But its now working. output same as \u0041

ฉันไม่เข้าใจ \u


person Curious    schedule 21.11.2017    source แหล่งที่มา


คำตอบ (1)


ฉันแนะนำให้อ่าน โพสต์ในบล็อกที่อธิบายได้ดีของ CEO คนปัจจุบันของ stackoverflow (เรื่องบังเอิญตลกๆ)

โดยพื้นฐานแล้วเพื่ออ้างอิงส่วนที่เกี่ยวข้อง (เกี่ยวกับ "u"):

U+ หมายถึง "Unicode" และตัวเลขเป็นเลขฐานสิบหก U+0639 เป็นอักษรอารบิกชื่อ Ain ตัวอักษรภาษาอังกฤษ A จะเป็น U+0041

อัปเดต

ดูเหมือนว่าปัญหาของคุณเชื่อมโยงกับการใช้งานที่ขาดหายไประหว่าง PHP 7.0 และ PHP 7.2 -> อ่าน SO-Answer นี้ที่นี่

person Ernst Zwingli    schedule 21.11.2017
comment
echo \u+0041 ไม่ทำงาน ให้ผลลัพธ์เดียวกัน \u+0041 - person Curious; 21.11.2017
comment
ใช่. เพิ่งจะรับรู้.. PHP-Version ของคุณคืออะไร? - person Ernst Zwingli; 21.11.2017
comment
PHP เวอร์ชัน 7.1.1 - person Curious; 21.11.2017
comment
เพิ่งจำได้ว่าคุณงดเว้น + ที่ส่วนท้ายของลำดับ มันใช้งานได้เมื่อคุณเพิ่มมัน? - person Ernst Zwingli; 21.11.2017
comment
อ่า... พบมันในโพสต์ SO นี้ที่นี่ มันไม่เกี่ยวอะไรกับไวยากรณ์ที่ผิด แต่ขาดฟังก์ชัน utf8 ใน PHP ระหว่าง 7.0.x และ 7.2.0 - person Ernst Zwingli; 21.11.2017