相关疑难解决方法(0)

utf8_general_ci和utf8_unicode_ci之间的差异是什么?

可能重复:
utf8_general_ci和utf8_unicode_ci之间有什么区别

我有两个unicode选项,看起来很有希望用于mysql数据库.

utf8_general_ci unicode (multilingual), case-insensitive
utf8_unicode_ci unicode (multilingual), case-insensitive
Run Code Online (Sandbox Code Playgroud)

你能解释一下utf8_general_ci和utf8_unicode_ci有什么区别吗?在设计数据库时,选择其中一个会产生什么影响?

mysql unicode character-encoding

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

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万
查看次数

PDO utf-8字符问题

我目前正在开发一个项目,而不是使用常规的MySQL查询,我认为我会继续学习如何使用PDO.

我有一个名为参赛者的桌子,数据库,桌子和所有栏目都在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
)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它不仅会弄乱角色,而且还会在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 …
Run Code Online (Sandbox Code Playgroud)

php string utf-8

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

使用PHP将latin1_swedish_ci转换为utf8

我有一个数据库填充了像♥•â—♥ Dhaka ♥•â—♥(应该是?•?? Dhaka ?•??)的值,因为我没有在创建数据库时指定排序规则.
现在我想解决它.我无法从第一个地方获取数据再次获取数据.所以我在想是否有可能在php脚本中获取数据并将其转换为正确的字符.
我已将数据库和字段的排序规则更改为utf8_general_ci..

php mysql character-encoding

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

Java库使用启发式方法修复错误编码的文本

我负责的是给我正确编码(和或损坏)字符串外部Web服务(UTF-8)是最有可能无论是ISO LATINWINDOWS-1252,但现在UTF-8(和或混合物ISO/WINDOWS/UTF-8).可爱的帽子(Â)比比皆是.

我显然无法修复外部Web服务如何存储其字符串以便丢失信息.因此,我所知道的100%翻译的希望是不可能的.

但我希望有人用Java编写了一个启发式字符映射库(不太可能有人会输入A帽子).

如果没有,我想我可以移植这个家伙PHP代码:https://stackoverflow.com/a/3521340/318174

更新和说明:像@VGR这样的简单转换将无效.我没有原始字节.数据在端点处转换不正确(SOAP服务器可能getBytes(/*with out correct encoding*/)已完成,或者数据可能以不正确的格式存储).当您将字节转换为Java中的字符串时,除非编码在任何地方都相同,否则不会保留数据.如果您想到像ASCII< - > 这样的东西,这很容易理解UTF-8.使用Windows-1252ISO Latin更复杂,因为数据不会丢失,但经常会混淆.那是因为那些编码可以是两个字节而不是它的子集UTF-8.

如果您不相信我,您可以尝试getBytes()使用各种编码进行反复操作,并且会看到数据损坏和数据丢失.

java heuristics utf-8 character-encoding

6
推荐指数
1
解决办法
1371
查看次数

确保字符串是UTF-8编码的

在我的应用程序中,我读取了一个csv文件并向用户显示内容.但编码存在问题.

我有两个csv文件example1.csvexample2.csv.我在notepad ++中都打开了,它显示了example1的ANSI编码和不带BOM的UTF-8.

首先,我尝试使用mb_detect_encoding函数来检测编码,但在两种情况下都显示UTF-8,这是不正确的.

其次,我尝试使用utf8_encode将文件内容转换为UTF-8 .这适用于ANSI文件.但是对于没有BOM文件的UTF-8,似乎它被编码回ANSI.它显示Ã而不是德国ß.其他特殊字符也一样.

我希望在显示或处理内容之前确保内容始终采用UTF-8格式.那么我做错了什么吗?


这是我使用mb_detect_encoding函数的方式:

$file_content = file_get_contents($_FILES['file']['tmp_name']);

die(var_dump( mb_detect_encoding($file_content))); 
Run Code Online (Sandbox Code Playgroud)

并为两个例子打印UTF-8.

php csv utf-8

6
推荐指数
1
解决办法
2356
查看次数

存储在MySQL数据库中的重音字符

我有一个webapp,可以在MySQL数据库中存储法语文本 - 可能包含重音字符.当通过PHP直接检索数据时,重音字符变成gibbirish.例如:qui r?fl?te la liste.

因此,我使用htmlentities()(或htmlspecialchars())将字符串转换为html实体,一切都很好.但是,当我输出包含重音字符和HTML元素的数据时,事情变得更加复杂.例如,<strong>被转换为&lt;strong&gt;浏览器并因此不被浏览器理解.

如何才能同时正确显示重音字符并正确解析我的HTML?

谢谢!

php mysql

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

标签 统计

character-encoding ×4

mysql ×4

php ×4

utf-8 ×4

unicode ×2

csv ×1

heuristics ×1

java ×1

mariadb ×1

string ×1