相关疑难解决方法(0)

PHP json编码 - 格式错误的UTF-8字符,可能编码错误

我正在将json_encode($ data)用于数据数组,并且有一个字段包含俄语字符.我使用这个mb_detect_encoding()来显示该字段的编码,并显示UTF-8.我认为json编码失败是由于其中的一些不良字符,如"ра▒".我在数据上尝试了很多东西utf8_encode,它会传递那个错误但是数据看起来不再正确了.

这个问题可以做些什么?

php encoding json utf-8

28
推荐指数
5
解决办法
4万
查看次数

utf-8特殊字符不显示

我将我的网站从我的本地测试服务器移动到NameCheap共享主机,现在我遇到了一个问题 - 一些页面没有正确显示utf-8特殊字符(显示问号).所有页面都是utf-8编码,所有数据库表都是如此.奇怪的是,有些页面显示正确,而有些页面则看似随机.

例如,我的索引页面很好,但我的个人资料页面没有.faq.html工作正常,但是当我将它重命名为faq.php时却没有.最奇怪的是,我有一个带有两个JQuery选项卡的页面,其中一个正确显示而另一个没有!

有人可以帮我解决这个问题吗?

html php encoding utf-8

24
推荐指数
2
解决办法
12万
查看次数

utf 8 - PHP和MySQLi UTF8

我的表字符集是utf8,它的校对是utf8.now我有这个代码:

   $mysqli = new mysqli("localhost", "root", "", "Amoozeshgah");

            if (mysqli_connect_errno()) {
                  printf("Connect failed: %s\n", mysqli_connect_error());

            }
          if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
    printf("Current character set: %s\n", $mysqli->character_set_name());
}
        mysql_set_charset('utf8');
            if ($stmt = $mysqli->prepare("SELECT About_Title FROM Tbl_About WHERE About_Id=?")) {
                $city = 8;

               /* bind parameters for markers */
                $stmt->bind_param("s", $city);

              /* execute query */
                $stmt->execute();

               /* bind result variables */

                  $result = $stmt->get_result();

             /* fetch value */
            while ($myrow = $result->fetch_assoc()) {

        // …
Run Code Online (Sandbox Code Playgroud)

php mysqli character-encoding

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

由于解码不当,Wordpress搜索在特殊字符上失败

我正在实现Wordpress搜索功能.当我搜索文本" 分区 "(这是其中一个帖子中的文本)时,它返回"未找到结果"

现在进一步调查,我检查了核心文件: wp-includes/query.php => function parse_search()

并发现$ term被接收编码为:Division\xe2\x80\x99s

现在这个术语没有被正确解码.形成的最终SQL语句是:
(((test_posts.post_title LIKE'%Division\xe2\x80\x99s%')OR(test_posts.post_content LIKE'%Division\xe2\x80\x99s%')))

所以,我想解码特殊字符,以便成功搜索带有特殊字符的术语.

解码方法如:

  • $ string = urldecode($ string);
  • $ string = html_entity_decode($ string);
  • $ string = rawurldecode($ string);
  • $ string = base64_decode($ string);
  • $ string = utf8_decode($ string);

不工作.有没有可以帮助的插件/钩子/方法?

示例提供:

简单searchform.php文件在这里:

if (!defined('ABSPATH')) exit(0); 

global $wp_query;

$search_query = get_search_query();
$error = get_query_var('error'); ?>

<form role="search" method="get" class="search-form form-inline" action="<?php echo esc_url(home_url('/')); ?>">
    <input id="mod-search-searchword" type="search" size="30" class="inputbox search-query search-field" placeholder="search products, content" value="<?php echo …
Run Code Online (Sandbox Code Playgroud)

php string wordpress decode special-characters

22
推荐指数
1
解决办法
2750
查看次数

如何使用PHP显示Unicode数据

table 'abc' data :

tid    title

  1      ????????????? ?.

  2      ?????? ?????? 


$sql=mysql_query("select title from abd where tid='1'");

$row=mysql_fetch_array($sql);

$title = $row['title'];

echo $title;
Run Code Online (Sandbox Code Playgroud)

OutPut显示如下:

????????????????
Run Code Online (Sandbox Code Playgroud)

但我想展示

????????????? ?.
Run Code Online (Sandbox Code Playgroud)

<?php
    mysql_query ("set character_set_results='utf8'");   

    $sql=mysql_query("select title from abd where tid='1'");

    $row=mysql_fetch_array($sql);

    $title = $row['title'];

    echo $title;

?>
Run Code Online (Sandbox Code Playgroud)

php mysql unicode

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

如何最好地配置PHP来处理UTF-8网站

你会推荐什么扩展,如何最好配置php来创建一个使用utf-8编码的网站.例如...

  • 页面输出为utf-8
  • 表单提交以utf-8编码的数据
  • 字符串数据的内部处理(例如,当与数据库交谈时)也都在utf-8中.

看来php目前还不能很好地处理多字节字符集.到目前为止,我已经知道mbstring看起来像一个重要的扩展.

值得麻烦......?

php utf-8

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

PHP安全性:如何滥用编码?

从这个优秀的" UTF-8一直到 "的问题,我读到了这个:

不幸的是,在尝试存储或在任何地方使用它之前,您应该将每个提交的字符串验证为有效的UTF-8.PHP的mb_check_encoding()可以解决问题,但你必须虔诚地使用它.真的没办法解决这个问题,因为恶意客户端 可以用他们想要的任何编码提交数据,而且我还没有找到让PHP可靠地为你做这件事的技巧.

现在,我还在学习编码的怪癖,我想知道恶意客户端可以做些什么来滥用编码.一个人可以实现什么?有人能举个例子吗?假设我将用户输入保存到MySQL数据库中,或者我通过电子邮件发送,如果我不使用该mb_check_encoding功能,用户怎么会造成伤害呢?

php security encoding utf-8 mbstring

18
推荐指数
1
解决办法
1425
查看次数

使用PHP + MySQL的utf-8编码问题

我将数据从MySQL 4(它们最初设置为latin2 encoding)移动到MySQL 5并将编码设置为utf-8.它看起来不错phpMyAdmin,而且utf-8还可以.但是网站上有问号而不是一些字符!网站编码也设置为utf8所以我不明白问题在哪里.

PHPHTML文件也设置为utf8.

我不知道...

php mysql encoding utf-8 multibyte

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

初始化PDO时 - 我应该这样做:charset = UTF8或charset = UTF8MB4?

初始化PDO时 - 我应该这样做:charset = UTF8或charset = UTF8MB4?

这是我的初始化:

            $dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8';
            $dbh = new \Pdo($dsn, 'username', 'pass');
            $dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)

但是,如果dsn是这样的:

$dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8MB4';
Run Code Online (Sandbox Code Playgroud)

如果mysql数据库有一个默认的字符集UTF8MB4.

mysql pdo character-encoding

16
推荐指数
1
解决办法
8134
查看次数

在MySQL中,我在my.cnf中放置了什么,以便所有表格都是UTF-8默认情况下与emojis一起使用?

我希望每个表和数据库(要创建)都是与emojis一起使用的utf-8.我知道我需要在里面定义一些变量my.cnf:

init_connect='SET collation_connection = ??? '
init_connect='SET NAMES ???'
character-set-server = ???
collation-server = ???
Run Code Online (Sandbox Code Playgroud)

但是,我不知道该放什么???.我放在里面my.cnf怎么样?

mysql database

16
推荐指数
1
解决办法
823
查看次数