我目前正在从事一个项目,我不使用常规的MySQL查询,而是继续学习如何使用PDO。
我有一个称为参赛者的表,数据库,表和所有列均位于utf-8中。我的参赛者表中有10个条目,而它们的“名称”列中包含诸如åäö之类的字符。
现在,当我从数据库中获取一个条目并使用var_dump的名称时,我得到了一个很好的结果,即一个包含所有特殊字符的字符串。但是我需要做的是按字符分割html" target="_blank">字符串,将它们放入数组中,然后重新排列。
例如,我有以下字符串: TestÅÄÖTåän
当我运行str_split时,我得到了数组中自己的每个键。唯一的问题是所有特殊字符都显示为: ,表示数组将如下所示:
Array
(
[0] => T
[1] => e
[2] => s
[3] => t
[4] =>
[5] => �
[6] => �
[7] => �
[8] => �
[9] => �
[10] => �
[11] =>
[12] => T
[13] => �
[14] => �
[15] => �
[16] => �
[17] => n
)
如您所见,它不仅弄乱了字符,而且还在str_split进程中复制了它们。我尝试了几种分割字符串的方法,但是它们都有相同的问题。当我在分割之前输出字符串时,它会很好地显示特殊字符。
这是我的dbConn.php代码:
//需要配置文件:require_once(’config.inc.php’);
// Start PDO connection:
$dbHandle = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf-8", $dbUser, $dbPass);
$dbHandle -> exec("SET CHARACTER SET utf8");
// Set error reporting:
$dbHandle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
这是我用来从数据库中获取并循环的代码:
// Require files:
require_once('dbConn.php');
// Get random artist:
$artist = $dbHandle->query("SELECT * FROM ".ARTIST_TABLE." WHERE id = 11 ORDER BY RAND() LIMIT 1");
$artist->setFetchMode(PDO::FETCH_OBJ);
$artist = $artist->fetch();
var_dump($artist->name);
// Split name:
$artistChars = str_split($artist->name);
我正在使用utf-8进行连接,我的php文件是utf-8, 没有BOM,
并且此页面上的其他特殊字符也没有共享此问题。可能出什么问题了,或者我做错了什么?
str_split
不适用于多字节字符,它将仅返回第一个字节-
从而使您的字符无效。您可以使用mb_split
。
问题内容: 我遇到了这行遗留代码,我试图找出这些遗留代码: 据我了解,它是使用相同的charSet进行编码和解码。 这与以下内容有何不同? 在任何情况下,两条生产线的输出将不同? ps:只是要澄清一下,是的,我知道Joel Spolsky撰写的关于编码 的出色文章! 问题答案: 这可能是很复杂的方式 这缩短了String,而所使用的基础char []则更长。 但是,更具体地说,将检查每个字符是否都
问题内容: 我正在使用BeautifulSoup从HTML提取一些文本,但是我只是想不出如何正确地将其打印到屏幕(或与此相关的文件)上。 这是我的包含文本的类的样子: 当尝试打印一个实例时,这是我在控制台上看到的: 无论我尝试什么,都无法获得想要的输出(上面的文本应该是希伯来语)。我的最终目标是序列化到文件(使用json或pickle)并能够将其读回。 我在Ubuntu 10.10上使用Pytho
问题内容: 我有一个带有“ñ”字符的字符串,并且我有一些问题。我需要将此字符串编码为UTF-8编码。我已经通过这种方式尝试过,但是没有用: 如何将该字符串编码为utf-8? 问题答案: Java中的对象使用无法修改的UTF-16编码。 唯一可以使用不同编码的是。因此,如果你需要UTF-8数据,则需要一个。如果你有一个包含意外数据的,则问题出在较早的地方,该错误地将一些二进制数据错误地转换为a (即
问题内容: 如何使用Android解码utf-8字符串?我尝试使用此命令,但输出与输入相同: 问题答案: 字符串不需要编码。它只是一个Unicode字符序列。 要将字符串转换为字节序列时需要进行 编码 。您选择的字符集(UTF-8,cp1255等)确定了Character-> Byte映射。请注意,字符不必转换为单个字节。在大多数字符集中,大多数Unicode字符都转换为至少两个字节。 字符串的编
我有一个ASP.NET WebService,如下所示: ??-??-?? 这是一个考验 如何配置WebService以接受UTF-8编码的字符串?
本章是由 Alex Cabal 最初撰写在 PHP Best Practices 中的,我们使用它作为进行建议的基础。 这不是在开玩笑。请小心、仔细并且前后一致地处理它。 目前,PHP 仍未在底层实现对 Unicode 的支持。虽然有很多途径可以确保 UTF-8 字符串能够被正确地处理,但这并不是很简单的事情,通常需要对 Web 应用进行全方面的检查,从 HTML 到 SQL 再到 PHP。我们将