相关疑难解决方法(0)

UTF-8字符有问题; 我看到的不是我存储的东西

我试图使用UTF-8并遇到麻烦.

我尝试了很多东西; 这是我得到的结果:

  • ????而不是亚洲人物.即使是欧洲文本,我也得到Se?orSeñor.
  • 奇怪的胡言乱语(Mojibake?)如Señor新浪新闻????.
  • 黑色钻石,如Se or.
  • 最后,我陷入了数据丢失或至少被截断的情况:Sefor Señor.
  • 即使我看到正确的文字,它也没有正确排序.

我究竟做错了什么?我该如何修复代码?我可以恢复数据,如果是,如何恢复?

mysql unicode utf-8 character-encoding mariadb

66
推荐指数
3
解决办法
3万
查看次数

MySQL - 将UTF8表上的latin1字符转换为UTF8

直到今天我才意识到我在PHP脚本中遗漏了这个:

mysql_set_charset('utf8');
Run Code Online (Sandbox Code Playgroud)

我的所有表都是InnoDB,排序规则"utf8_unicode_ci",我所有的VARCHAR列都是"utf8_unicode_ci".我有mb_internal_encoding('UTF-8');我的PHP脚本,我的所有PHP文件都编码为UTF-8.

所以,直到现在,每次我用变音符号"插入"某些东西,例如:

mysql_query('INSERT INTO `table` SET `name`="Jáuò Iñe"');
Run Code Online (Sandbox Code Playgroud)

在这种情况下,'name'内容将是:Jáuò Iñe.

由于我在PHP和MySQL之间修复了字符集,因此新的INSERT现在可以正确存储.但是,我想修复目前"混乱"的所有旧行.我已经尝试了很多东西,但它总是打破第一个"非法"角色的字符串.这是我目前的代码:

$m = mysql_real_escape_string('¿<?php echo "¬<b>\'PHP &aacute; (á)??riî? </b>"; ?> ?-?i abcdd;//;ñç´????????ç?â????????????ñ ;');
mysql_set_charset('utf8');
mysql_query('INSERT INTO `table` SET `name`="'.$m.'"');
mysql_set_charset('latin1');
mysql_query('INSERT INTO `table` SET `name`="'.$m.'"');
mysql_set_charset('utf8');

$result = mysql_iquery('SELECT * FROM `table`');
while ($row = mysql_fetch_assoc($result)) {
    $message = $row['name'];
    $message = mb_convert_encoding($message, 'ISO-8859-15', 'UTF-8');
    //$message = iconv("UTF-8", "ISO-8859-1//IGNORE", $message);
    mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string($message).'" WHERE `a1`="'.$row['a1'].'"');
}
Run Code Online (Sandbox Code Playgroud)

除了在字符"ă"之后字符串被截断之外,它还使用期望的字符"UPDATE".我的意思是,字符串中不包含该字符和后续字符.

此外,使用"iconv()"(在代码上注释)进行测试也是如此,即使使用// IGNORE和// TRANSLIT也是如此

我还测试了ISO-8859-1和ISO-8859-15之间的几个字符集.

我真的需要帮助!谢谢.

php mysql iso-8859-1

43
推荐指数
2
解决办法
6万
查看次数

PHP解析问题 - &nbsp; 和Â

当我试图解析一些&nbsp;洒在它上面然后echo它的html 时,&nbsp;"变成"这个角色:Â.此外,html_entity_decode()str_replace()没有改变它.

为什么会这样?我怎样才能删除Â?

html php parsing character-encoding

21
推荐指数
1
解决办法
2万
查看次数

从 Excel 导出后,在 XML 文件和 PowerShell 输出中发现奇怪的字符:

我有一个 XML 文件,我正在尝试使用 PowerShell 读取该文件。但是,当我阅读它时,某些 XML 对象的输出中包含以下字符: \xc3\xa2\xe2\x82\xac\xe2\x80\xb9

\n

我只是从第三方下载了所需的 XML 文件,该文件在 Excel 中打开。然后我抓取所需的列并将它们粘贴到新的 Excel 工作簿中。然后,我使用 XML 架构映射字段,然后将其导出为 XML 文件,然后将其用于编写脚本。

\n

在 Excel 电子表格中,我的数据看起来很干净,但当我导出它并运行 PS 脚本时,这些奇怪的字符出现在输出中。这些字符甚至在导出后出现在实际的 XML 文件中。我究竟做错了什么?

\n

我尝试使用-Encoding UTF8,但我对 PowerShell 比较陌生,并且不确定如何将其正确应用到我的脚本中。感谢任何帮助!

\n

电源外壳

\n
$xmlpath = 'Path\\To\\The\\File.xml'\n\n[xml]$xmldata = (Get-Content $xmlpath)\n\n$xmldata.applications.application.name\n
Run Code Online (Sandbox Code Playgroud)\n

输出示例

\n
\xc3\xa2\xe2\x82\xac\xe2\x80\xb9ABC_DEF_GHI\xc3\xa2\xe2\x82\xac\xe2\x80\xb9.com\xc3\xa2\xe2\x82\xac\xe2\x80\xb9\xc3\xa2\xe2\x82\xac\xe2\x80\xb9\n\xc3\xa2\xe2\x82\xac\xe2\x80\xb9JKL_MNO_PQRS\xc3\xa2\xe2\x82\xac\xe2\x80\xb9.com\xc3\xa2\xe2\x82\xac\xe2\x80\xb9\nTUV_WXY_Z.com\nAB_CD_EF_GH\xc3\xa2\xe2\x82\xac\xe2\x80\xb9.com\n
Run Code Online (Sandbox Code Playgroud)\n

xml excel powershell

3
推荐指数
1
解决办法
825
查看次数