我有一个Feed,我将数据从中提取到数据库中.它以
XML格式提供数据.但是,数据包括“非法”字符.例如:
A GREAT NEIGHBOURHOOD – WITH A
要么
large “country style†eat-in
要么
Garage 14’x32’,large
要么
OR…….ENDLESS POSSIBILITIES!!
我的问题首先是,如何识别这些字符的编码,其次,如何更改编码以匹配我的数据库所需的UTF8格式?
编辑:要明确的是,此过程中没有涉及数据库(此时此过程中,无论如何).数据将在稍后插入到数据库中,但此刻我只是通过PHP脚本读取数据并使用var_dump在屏幕上打印.
问题是您的UTF-8响应以不同的方式处理或数据库未正确设置.这里有一些关于这可能发生的例子以及如何解决它的例子.
使用卷曲之前
header("Content-Type: text/html; charset=utf-8");
MysqL(my.cnf)
[client] default-character-set=utf8 [MysqL] default-character-set=utf8 [MysqLd] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8
手动创建数据库时
CREATE DATABASE `your_table_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci;
使用Doctrine等框架时
$conn = array( 'driver' => 'pdo_MysqL','dbname' => 'test','user' => 'root','password' => '*****','charset' => 'utf8','driverOptions' => array(1002=>'SET NAMES utf8') );