相关疑难解决方法(0)

UTF-8一路走来

我正在设置一个新服务器,并希望在我的Web应用程序中完全支持UTF-8.我过去曾在现有的服务器上尝试过此操作,但最终似乎不得不回归ISO-8859-1.

我在哪里需要设置编码/字符集?我知道我需要配置Apache,MySQL和PHP来执行此操作 - 是否有一些我可以遵循的标准清单,或者可能是在出现不匹配的地方进行故障排除?

这适用于运行MySQL 5,PHP,5和Apache 2的新Linux服务器.

php mysql linux apache utf-8

1146
推荐指数
13
解决办法
15万
查看次数

MySQL和PHP:带有西里尔字符的UTF-8

我正在尝试在MySQL表中插入Cyrillic值,但编码存在问题.

PHP的:

<?php

$servername = "localhost";
$username = "a";
$password = "b";
$dbname = "c";

$conn = new mysqli($servername, $username, $password, $dbname);

mysql_query("SET NAMES 'utf8';"); 
mysql_query("SET CHARACTER SET 'utf8';"); 
mysql_query("SET SESSION collation_connection = 'utf8_general_ci';"); 

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "UPDATE  `c`.`mainp` SET  `search` =  'test ????' WHERE  `mainp`.`id` =1;";

if ($conn->query($sql) === TRUE) {   
}
$conn->close();

?>
Run Code Online (Sandbox Code Playgroud)

MySQL的:

| id |    search   |            
| 1  |   test ав |
Run Code Online (Sandbox Code Playgroud)

注意:PHP文件是utf-8,数据库排序规则utf8_general_ci

php mysql utf-8

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

在PHP中将2种外观相似的德语字符转换为相同的ASCII字符串

我有以下两个字符串:

$str1 = 'O?';
$str2 = 'Ö';
$e1 = mb_detect_encoding($str1);
$e2 = mb_detect_encoding($str2);
var_dump($str1);
var_dump($str2);
echo 'e1: '.$e1.', e2: '.$e2;
Run Code Online (Sandbox Code Playgroud)

结果是:

string(3) "O?"
string(2) "Ö"
e1: UTF-8, e2: UTF-8
Run Code Online (Sandbox Code Playgroud)

看来它们不仅是德语字符,而且每个字符都不相同,因此可以将它们转换为ASCII

PHP:用UTF-8字符串中最接近的7位ASCII等效字符替换变音符号

不会产生相等的结果。有没有办法既这些字符串转换为这些ASCII形式之一BNOEBNO


我知道也许我可以从这两者中复制Ö并包括在strtr搜索和替换数组中,但是我不知道如何以与第一个Ö相同的方式来再现所有编码的字符。

php encoding ascii utf-8

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

标签 统计

php ×3

utf-8 ×3

mysql ×2

apache ×1

ascii ×1

encoding ×1

linux ×1