2012-12-28 40 views
11

thể trùng lặp:
UTF-8 all the way throughPHP vấn đề mysql charset utf8

Tôi đang phát triển một số tính năng mới trên một trang web mà người khác đã phát triển.

Tôi đang gặp vấn đề với bộ ký tự.

tôi thấy rằng cơ sở dữ liệu đã có một số bảng trong utf8 và một số trong latin1

Vì vậy, tôi đang cố gắng để chuyển đổi tất cả các bảng trong UTF8.

Tôi đã làm nó cho một bảng (cũng là các trường của bảng này bây giờ là utf8), nhưng không thành công.

Tôi đang sử dụng kết nối mysql bình thường. Tôi phải đặt bất kỳ cấu hình để nói rằng nó phải kết nối với utf8 để DB? Nếu có phù thủy một?

Trong html của tôi, tôi có:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

Dường như một số chữ làm việc và những người khác hiển thị dấu chấm hỏi. Ví dụ nó không có khả năng hiển thị này 'đó là khác nhau về điều này:'

+0

Những ký tự được hiển thị như dấu hỏi trong DB ? –

+0

đừng phát điên. Vì vậy, hãy kiểm tra lại câu hỏi của bạn, chỉnh sửa câu hỏi và thực sự đặt câu hỏi. * "Có vẻ như một số chữ cái hoạt động và những chữ khác hiển thị dấu chấm hỏi." * - những câu như vậy không hữu ích. Tôi đặt cược cho bạn họ không phải là hữu ích là tốt. – hakre

+0

Đồng thời liên hệ với người bạn nhận được mã từ để lấy tài liệu. Cũng tìm kiếm câu hỏi của bạn. Ví dụ. phần về cấu hình ký tự mysql đã được hỏi và trả lời trước đây - bạn không cần hỏi lại, bạn chỉ có thể tìm kiếm. Ví dụ. [Cho dù sử dụng "SET NAMES"] (http://stackoverflow.com/q/1650591/367456) và [SET NAMES utf8 trong MySQL?] (Http://stackoverflow.com/q/2159434/367456). – hakre

Trả lời

29

Hãy thử điều này

<?php 

    header('Content-Type: text/html; charset=utf-8'); 
?> 

và sau đó trong kết nối

<?php 
$dbLink = mysql_connect($argHost, $argUsername, $argPassword); 
    mysql_query("SET character_set_results=utf8", $dbLink); 
    mb_language('uni'); 
    mb_internal_encoding('UTF-8'); 
    mysql_select_db($argDB, $dbLink); 
    mysql_query("set names 'utf8'",$dbLink); 
?> 
+0

Tôi đã làm điều đó và tôi cũng phải loại bỏ tất cả các hàm htmlentities() và utf8_encode() đã được sử dụng. Cảm ơn – Samuele