- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我目前正在做一个项目,我想我应该继续学习如何使用 PDO,而不是使用常规的 MySQL 查询。
我有一个名为 contestants 的表,数据库、表和所有列都是 utf-8 格式。我在参赛者表中有十个条目,他们的“名称”列包含 åäö 等字符。
现在,当我从数据库中获取一个条目并将名称 var_dump 时,我得到了一个很好的结果,一个包含所有特殊字符的字符串。但我需要做的是按字符拆分字符串,将它们放入一个数组中,然后将其打乱。
例如,我有这个字符串:测试 ÅÄÖ 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 without BOM 并且此页面上没有其他特殊字符存在此问题。哪里出了问题,或者我做错了什么?
最佳答案
请注意,据报告您的连接字符串中使用的 utf8 声明无效。在 php.net 的评论中,我经常看到这个替代方案:
$dbHandle = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8", $dbUser, $dbPass,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
关于php - 在 UTF-8 编码的字符串上使用 str_split,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822461/
我正在寻找最快的解决方案,到split一个字符串分成几部分,没有 word-wrap . $strText = "The quick brown fox jumps over the lazy dog
这个问题在这里已经有了答案: How to get last subelement of every element of a list? (2 个回答) 4年前关闭。 我有一个 R 字符串列表,我想
我有一个带有 ID (V1) 的数据框和一些包含具有逗号分隔值的字符串的列,即“a,b”(V2)。我想根据任何值向量与此字符串中任何值之间的匹配来过滤数据框。我还想保留任何其他列而不明确命名它们 (V
我给出了一个示例,以便您了解我想要实现的目标。我得到了这个标题: $t1 = "Disposizione n. 158 del 28.1.2012"; $t2 = "Disposizione n.66
我有一个函数,当给定一个字符串列表时,应该返回一个由 N 大小的所有唯一字符串组成的向量。 get_unique <- function (input_list, size = 3) { out
我有这段代码,每 3 个字符分割一个字符串,工作正常,但重音符号很困惑: $splitted_array = str_split('waderòrò',3); 但它输出 print_r($splitt
我有一段代码是这样的: $string="رستوران"; $arr = str_split($string); var_dump($arr); echo ''; 结果是: array (size=
我有这段代码,每 3 个字符分割一个字符串,工作正常,但重音符号很困惑: $splitted_array = str_split('waderòrò',3); 但它输出 print_r($splitt
我有一段代码是这样的: $string="رستوران"; $arr = str_split($string); var_dump($arr); echo ''; 结果是: array (size=
stringr 包中 str_split 的文档指出,对于模式参数: If "" splits into individual characters. 这表明它在这方面的行为与 strsplit 相同
这个问题在这里已经有了答案: What is the best way to split a string into an array of Unicode characters in PHP? (8
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我有一个包含一些问题的数据框。我想从问题中删除前导数字和句点,但保留其他所有内容。我不太了解正则表达式,但这似乎是 str_split() 的完美用法,特别是在 dplyr 管道中。但是,拆分字符串后
我有这个字符串: 235072,testing,some252f4,14084-things224072,and,other2524,14084-thingies223552,testing,some
$transData = fgets($fp); while (!feof ($fp)) { $transArry = explode(" ", $transData); $firs
仍在努力掌握咕噜声 library(stringr) library(purrr) df % map(str_split, pattern = " ") %>% map_chr(c(1,2)) 关于r
假设我有这么一小段代码: 如何在 Python v2.7 中执行此操作? 我以为这样就可以了: the_string = 'hello world!' tmp = the_string.split(
我正在尝试以下内容 $x = "126·10⁴"; $array = str_split($x); echo "x = " . $x . ""; echo "Array length: " . cou
我目前正在做一个项目,我想我应该继续学习如何使用 PDO,而不是使用常规的 MySQL 查询。 我有一个名为 contestants 的表,数据库、表和所有列都是 utf-8 格式。我在参赛者表中有十
我目前正在做一个项目,我想我应该继续学习如何使用 PDO,而不是使用常规的 MySQL 查询。 我有一个名为 contestants 的表,数据库、表和所有列都是 utf-8 格式。我在参赛者表中有十
我是一名优秀的程序员,十分优秀!