2011-12-23 2 views
7

Đây là một câu hỏi tiếp theo về từ này: Algorithm to dynamically merge arraysnhân vật Không thoát trên tạp chí Cell Dừng Row Processing PHPExcel

Có những nhân vật chưa thoát ra trong một số tế bào trong bảng tính. Tôi cố gắng để thoát khỏi chúng với addslashes() nhưng phpexcel dường như bỏ qua điều này và ngừng xử lý phần còn lại của các hàng. Tôi gặp lỗi này trong nhật ký:

PHP Warning: Unexpected character in input: '\' (ASCII=92) state=1 

Tôi đã xem qua API; Tôi chưa thấy bất kỳ phương pháp định dạng văn bản nào mà tôi có thể sử dụng. (Vui lòng sửa tôi nếu tôi sai)

Trợ giúp của bạn được đánh giá cao.

+1

bổ sung không thoát khỏi các khoảng thời gian, php.net cho tôi biết .... o_O. – Mina

+2

PHPExcel không quan tâm đến các dấu gạch chéo, chúng chỉ là các ký tự trong một chuỗi .... chỉ có điều kiện là sử dụng UTF-8. Miễn là bạn tuân thủ các quy tắc riêng của PHP bằng các chuỗi, bạn không nên có bất kỳ vấn đề nào với thư viện, vì vậy rõ ràng đây là một thứ khác. Bạn có thể vui lòng cung cấp ví dụ về những chuỗi nào đang gây ra sự cố cho bạn và cách bạn đọc chúng từ PHPExcel và lưu trữ chúng trong cơ sở dữ liệu. –

Trả lời

2

Từ documenation PHP:

"Nó là cần thiết để sử dụng UTF-8 mã hóa cho tất cả các văn bản trong PHPExcel Nếu kịch bản sử dụng mã hóa khác nhau sau đó nó có thể chuyển đổi các văn bản với iconv PHP() chức năng.. "

Thoát các ký tự sẽ không làm bất kỳ điều gì vì các ký tự không phải là ký tự UTF8 hợp lệ sẽ không hợp lệ.

Mặc dù bạn có thể thực hiện chuyển đổi tập ký tự khi chuyển dữ liệu sang PHPExcel, tôi khuyên bạn nên chuyển toàn bộ dự án sang UTF8 khi xử lý nhiều bộ ký tự trong một dự án.