Tôi đã tìm kiếm stackoverflow về vấn đề này và đã tìm thấy một vài chủ đề, nhưng tôi cảm thấy không có câu trả lời chắc chắn cho tôi về vấn đề này.Lỗi trình phân tích cú pháp XML: thực thể không được xác định
Tôi có biểu mẫu mà người dùng gửi và giá trị của trường được lưu trữ trong tệp XML. XML được thiết lập để được mã hóa bằng UTF-8.
Hiện tại, sau đó người dùng sẽ sao chép/dán văn bản từ đâu đó và đó là khi tôi nhận được lỗi "không xác định đối tượng".
Tôi nhận ra XML chỉ hỗ trợ một số thực thể được chọn và bất kỳ thứ gì ngoài đó không được nhận dạng - do đó lỗi trình phân tích cú pháp.
Từ những gì tôi thu thập, có một vài lựa chọn Tôi đã nhìn thấy:
- Tôi có thể tìm và thay thế tất cả
và trao đổi chúng ra với 
hoặc một không gian thực tế. - Tôi có thể đặt mã được đề cập trong phần CDATA.
- Tôi có thể bao gồm các thực thể này trong tệp XML.
Điều tôi đang làm với tệp XML là người dùng có thể nhập nội dung vào biểu mẫu, nó được lưu trữ trong tệp XML và nội dung đó được hiển thị dưới dạng XHTML trên trang Web (được phân tích bằng SimpleXML).
Trong ba tùy chọn hoặc bất kỳ tùy chọn nào khác mà tôi không biết, cách thực sự tốt nhất để giải quyết các thực thể này là gì?
Cảm ơn, Ryan
CẬP NHẬT
Tôi muốn cảm ơn tất cả mọi người cho ý kiến phản hồi tuyệt vời. Tôi thực sự đã xác định nguyên nhân gây ra lỗi của tổ chức của mình. Tất cả những gợi ý khiến tôi nhìn sâu hơn!
Một số hộp văn bản có các hộp văn bản thuần tuý cũ, nhưng văn bản của tôi đã được cải tiến bằng TinyMCE. Hóa ra, trong khi xem xét kỹ hơn, các cảnh báo PHP luôn luôn tham chiếu dữ liệu từ các văn bản nâng cao TinyMCE. Sau đó tôi nhận thấy trên một máy tính rằng tất cả các nhân vật đã được đưa ra (vì nó không thể đọc chúng), nhưng trên một MAC bạn có thể thấy các ô vuông nhỏ tham chiếu số unicode của nhân vật đó. Lý do nó xuất hiện trong hình vuông trên một MAC ở nơi đầu tiên, là vì tôi đã sử dụng utf8_encode để mã hóa dữ liệu không có trong UTF để ngăn chặn các lỗi phân tích cú pháp khác (mà bằng cách nào đó cũng liên quan đến TinyMCE).
Các giải pháp cho tất cả điều này là khá đơn giản:
tôi đã thêm dòng này entity_encoding : "utf-8"
trong tinyMCE.init tôi. Bây giờ, tất cả các nhân vật đều xuất hiện theo cách mà họ nghĩ.
Tôi đoán điều duy nhất tôi không hiểu là lý do tại sao các ký tự vẫn hiển thị khi được đặt trong hộp văn bản, vì không có gì chuyển đổi thành UTF, nhưng với TinyMCE thì đó là một vấn đề.
Một số bộ phận quan trọng của câu hỏi của bạn đang ẩn danh, vì họ đã phân tích cú pháp như đánh dấu. Hãy bao quanh các bit đó với các dấu ngoặc kép (''). – LarsH
@LarsH: Hm, tôi không thấy gì trong nguồn câu hỏi cần. – Tomalak
@Tomalak: "1. Tôi có thể tìm và thay thế tất cả * ?? * và trao đổi chúng với * ?? * hoặc một không gian thực tế." Chắc chắn với tôi như một cái gì đó đang thiếu ở đó. – LarsH