相关疑难解决方法(0)

MySQL db问号而不是希伯来字符..?

我正在尝试使用PHP和MySQL构建购物车.MySQL中的数据库是utf8,数据库中的表是utf8,

我怎样才能使用希伯来字符?

php mysql encoding

7
推荐指数
4
解决办法
2万
查看次数

如何使用PHP在MySQL中存储'€'符号?

我已将PHP字符集设置为utf-8:

header('Content-Type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)

我已经将currencyMySQL中的列设置为varchar(1)整理utf8_unicode_ci.

但是,PHP中的以下代码:

$currency = '€';
$sql = "UPDATE myTable SET currency = '$currency' WHERE user = '$user'";
mysql_query($sql);
Run Code Online (Sandbox Code Playgroud)

在MySQL中生成以下字符:

â
Run Code Online (Sandbox Code Playgroud)

如何让符号在MySQL中正确存储?

php mysql variables scope utf-8

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

国际化使用utf8_encode()(php函数)的内容最佳实践

为了让网站接受用户提交的内容(可能不是英文版)(例如日文版)并将其保存到数据库中,最好是对所有新内容进行utf8_encode,并在以后检索时使用utf8_decode?

进一步的信息:我正在使用doctrine,我在尝试保存或选择Unicode字符到MySQL数据库时遇到错误:

SQLSTATE [HY000]:常规错误:1267操作'='非法混合排序(latin1_swedish_ci,IMPLICIT)和(utf8_general_ci,COERCIBLE)

mysql doctrine utf-8 mysql-error-1267

7
推荐指数
2
解决办法
2496
查看次数

MySQL插入特殊字符

我有一个注册表格,它将插入一个成员表,整理是在utf8_general_ci,我SET NAMES utf8在PHP脚本中使用,好在这里是问题,我不能插入除纯字母以外的字符串,我尝试输入'Hélène'在一个表单字段,在sql查询运行之后,我用我的db表检查,该字段被插入为'H',每当字符串带有特殊字母表(如é, ?后面)时,其余的字母表都不能插入.

有人可以帮忙吗?谢谢.

解:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

mysql_query("SET NAMES utf8");
Run Code Online (Sandbox Code Playgroud)

以上两行是接受数据库输入和网页输出的关键部分.

谢谢大家的建议.

php mysql special-characters

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

“正在展示而不是 -

’正在显示而不是-在PHP页面中

我尝试使用不同的编码类型,如:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
Run Code Online (Sandbox Code Playgroud)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Run Code Online (Sandbox Code Playgroud)

但结果是一样的.可能是什么问题呢?

输入

<strong style="color:#A8A8A8;">1</strong> - Lorem Ipsum.

结果

1 - Lorem Ipsum.

php character-encoding non-ascii-characters

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

使用PHP从MySQL数据库中获取特殊字符

我有一张包含特殊字符的表格,例如™.

可以使用phpMyAdmin和其他软件输入和查看此字符,但是当我在PHP中使用SELECT语句输出到浏览器时,我会在其中获得带有问号的菱形.

表类型是MyISAM.编码是UTF-8 Unicode.整理是utf8_unicode_ci.

html头的第一行是

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Run Code Online (Sandbox Code Playgroud)

我在输出之前尝试在字符串上使用htmlentities()函数.没运气.

我也试过在任何输出之前将它添加到php(没有区别):

header('Content-type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)

最后我尝试在初始mysql连接下面添加这个(这导致显示其他奇数字符):

$db_charset = mysql_set_charset('utf8',$db);
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

php mysql utf-8 character-encoding

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

在 PHP 中将 HTML 实体和特殊字符转换为 UTF8 文本

有很多关于在 PHP 中将 HTML 实体和特殊字符转换为 UTF8 文本的问题和文档。还有 PHP 文档本身,例如 thishtmlspecialchars_decode()和 this html_entity_decode()。但是,我找不到任何函数/解决方案清楚地描述如何将任何 HTML 字符和特殊实体转换为 UTF-8 文本。他们都说“如果你想这样做,那就这样做”等等。但没有任何解决方案指出“拥有人类可以阅读的纯 UTF-8 文本,然后这样做”。

我问的原因是我真的没有测试用例。我正在读取一个数据库,它是多语言的。然而,唯一的保证是字符是 HTML 格式的,我需要将它们转换为 UTF-8,以便理解这些语言的人可以阅读。现在,我该怎么做呢?清理/解码输入使其成为纯文本的正确方法是什么?

谢谢。


更新

这是一个更新,从评论中可以清楚地看出我没有正确地提出问题。我的数据库包含文本。我想将该文本(包含 HTML 实体和特殊字符)转换为可以在网页上向最终用户显示的 UTF-8 文本。数据库中的文本是用多种语言编写的(例如法语、阿拉伯语、英语等)。所有这些都可以包含特殊字符的 HTML 实体。那么我怎样才能将所有这些转换为 UTF-8 文本,以便理解这些语言的人可以阅读呢?我喜欢删除那些特殊字符并将它们转换为人类可以阅读的内容。

php decode utf-8 html-entities htmlspecialchars

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

什么时候使用utf8_encode和utf8_decode?

字符编码对我来说一直是个问题.当正确的使用时间时,我真的没有得到.

我现在使用的所有数据库都是使用utf8_general_ci设置的,因为这似乎是一个很好的"一般"开始.从那时起我在过去的五分钟里就知道它不区分大小写.这很有帮助.

但我的问题是何时使用utf8_encodeutf8_decode?据我现在所知,如果我从我网站上的表中输出一个表单,我需要utf8_encode()在将其插入数据库之前输入该值.

然后,当我把它拉出来时,我需要utf8_decode它.是这样的吗?或者我错过了什么?

php mysql

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

如何使用ajax请求将hindi字体从客户端传递到服务器

我正在使用ajax请求从客户端向服务器端发送值以使用ajax请求插入mysql数据库.价值是用印地语写的(हिन्दीमतलबजाने).但是在客户端,当我发出警报时,我得到了如上所示的印地文文本,但是在服务器端请求被处理之后,它被插入到数据库中%u0939%u093F%u0928%u094D%u0926%u0940 %u092E%u0924%...

我在客户端使用过

request1h[k].setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8;");
request1h[k].send(requestDatah); 
Run Code Online (Sandbox Code Playgroud)

并在服务器端标题与PHP

<?php header("Content-Type: text/html; charset=utf-8");
mysqli_set_charset($con,"utf8");
Run Code Online (Sandbox Code Playgroud)

然后我读了关于utf8_encode并在post值上也使用了它

$value1 = utf8_decode($_POST['values']);
Run Code Online (Sandbox Code Playgroud)

但我仍然无法在数据库中插入印地文文本.请帮帮我怎么办?

javascript php mysql ajax utf-8

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

PHP内存在字符串操作方面效率低吗?

今天我今天遇到了PHP和MySQL 的问题(这是问题),这个问题已经解决,但它唤醒了一个新的,更理论化的问题.

问题是在MySQL数据库中我有一个类型为的字段VARCHAR(64).当试图从PHP脚本插入一个字符串时,完整的字符串超过64个字节,var_dump证明它有71个.但是,这是我不明白的,运行完全相同的查询,具有完全相同的字符串,但从phpmyadmin手动,它确实适合64字节的SQL字段.

所以,这是问题所在.是否有任何理由为什么php中的相同字符串比直接插入数据库需要更多内存?

编辑:有人建议复制与charset相关的问题.MySQL中的charset是utf8_general_ci.在PHP中我没有定义字符集,但如果print(mb_detect_encoding($string));我得到它是ASCII编码.可能这是原因吗?如果我认为ASCII占用的内存少于utf8,我有多难?(无论如何,在我编写的脚本中mysqli_set_charset($con,"utf8");,它应该在查询之前转换为utf8)

php

6
推荐指数
0
解决办法
45
查看次数