วันจันทร์ที่ 1 มีนาคม พ.ศ. 2553

ปัญหา fgetcsv กับ php

Share it Please
เนื่องจากได้เขียน php โดยอ่านไฟล์จากไฟล์ csv ซึ่งมีข้อความภาษาไทยอยู่ โดยเมื่อทดสอบบนเครื่องตัวเองนั้นไม่มีปัญหาใดๆ ทั้งสิ้นแต่เมื่อ deploy ขึ้นไปบน server ดันเกิดปัญหาขึ้นโดย ภาษาไทยนั้นไม่แสดงผล

จากที่ลอง research ดูก็ไล่ไปเรื่อยๆ ตั้งแต่ check ว่าเปิดไฟล์ได้ไหม echo ภาษาไทยได้ไหม และก็มาเจอประเด็นที่ fgetcsv

จากที่อ่านใน http://php.net/manual/en/function.fgetcsv.php ซึ่งมีเขียนไว้ว่า

Note: Locale setting is taken into account by this function. If LANG is e.g. en_US.UTF-8, files in one-byte encoding are read wrong by this function.

แสดงว่าเราต้องทำการ set locale ให้กับ apache การแสดงผลจึงจะถูกต้องโดยใช้คำสั่ง

setlocale ( LC_ALL, 'en_US.UTF-8' );

แค่นี้ก้จะทำให้การ get csv ที่มีภาษาไทยภายในไฟล์แสดงผลได้ถูกต้องแล้วครับ

2 ความคิดเห็น:

  1. ขอบคุณครับ
    เจอปัญหานี้เช่นกัน นั่งงมเข็มกว่าครึ่งวัน

    ตอบลบ
  2. ไม่ระบุชื่อ19 พฤษภาคม 2556 เวลา 21:31

    ขอบคุณครับ พยามแก้ปัญหานี้มาเป็นเดือน ตอนนี้ใช้วิธีนี้ก็สามารถแก้ได้แล้ว

    ตอบลบ

Blogroll

About