当我将波斯数据插入数据库时,数据将保存如下: †Ø¯Ø± 50 لیتری
但是当我从数据库中读取数据并在网络上回显时,它们就是好的.
我需要直接读取数据库中的数据.你的解决方案是什么?
Mysql设置:
服务器连接排序规则:UTF8_general_ci
Html文件字符集是utf8.
我将TinyMCE输入发送到POST(一个php文件),然后将其保存在MySQL数据库中.
输入具有UTF-8(土耳其语字符).因此,当我输入TürkçeTinyMCE输入并将其发送到post时,PHP后端会收到此字符串:
<p>Türkçe</p>
Run Code Online (Sandbox Code Playgroud)
如何将其转换回来,Türkçe以便我可以在MySQL中正确保存?
MySQL设置为utf8_unicode_ci排序规则,因此可以正确保存UTF-8字符.
我想我需要用PHP转换它们.
或者TinyMCE正确发送它们的方法?
谢谢你的帮助 !
我认为这个问题是关于TinyMCE本身的,所以我想解决方案是转换TinyMCE输出(在TinyMCE javascript或接收PHP脚本中).
即:我不认为改变我的PHP配置是解决方案.
我想这些字符就像ü土耳其字符的HTML等价物一样,所以htmlspecialchars_decode()应该可以使用,但它不接受土耳其字符.也许是一种htmlspecialchars_decode解码UTF-8字符的方法?
在PHP中使用IMAP电子邮件标头时,我遇到了与主题行编码相关的问题.当我尝试mb_decode_mimeheader(根据重复的问题)然后我没有得到理想的结果:
$subject = "=?UTF-8?Q?=e2=99=a3?= Your winning day =?UTF-8?Q?=e2=99=a3?=";
echo mb_decode_mimeheader($subject);
Run Code Online (Sandbox Code Playgroud)
输出:
? Your winning day ?
Run Code Online (Sandbox Code Playgroud) 我正在尝试在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 文件的顶部包含了这个:
<?php
header('Content-Type: text/html; charset=UTF-8');
?>
Run Code Online (Sandbox Code Playgroud)
我这样做是因为我的 file.php 没有在 html 文件或从我的数据库查询的数据中显示“á、é、í、ó、ú 或 ¿”。
在我放置了 'header('Content-Type: text/html; charset=UTF-8');' 之后 代码行我的 html 页面开始理解 html 文件中的特殊字符,但是,从我的数据库收到的数据现在有一个带问号的黑色菱形。
我的数据库的排序规则是“utf8_spanish_ci”
在 html 标签中,我尝试放置 lang=es 但这从未奏效我也尝试将元标签放入 head 标签中
<!DOCTYPE html>
<html lang=es>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<head>
Run Code Online (Sandbox Code Playgroud)
我也试过:
<meta charset="utf-8">
Run Code Online (Sandbox Code Playgroud)
和:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Run Code Online (Sandbox Code Playgroud)
我不知道是什么问题。当我将数据直接插入数据库时,特殊字符就在那里,但是当我从 file.php 插入它们时,它们会出现随机字符。
有谁知道为什么会这样?
我正在尝试从我的服务器传递数据并将其显示在UWP Windows应用程序中.数据存储在mySQL数据库中
这是通过PHP输出到这里的网页http://www.rwscripts.com/scorealerts/v3/request.php?action=getTeams使用此代码
// Serialize the data structure
$result = json_encode($data,JSON_PRETTY_PRINT);
// Display the XML document
header('Content-type: application/json; charset=utf-8');
print $result;
Run Code Online (Sandbox Code Playgroud)
然后我在我的应用程序中使用HttpWebRequest读取它,然后使用JSON.net反序列化JSON
JArray obj = JsonConvert.DeserializeObject(str.Trim()) as JArray;
if (obj == null || obj.Count == 0) return;
foreach (NotificationTeam nt in from JObject team in obj
select
new NotificationTeam
{
Title = team.Value<string>("teamName"),
TeamID = team.Value<int>("tid"),
Followers = team.Value<int>("followers")
})
{
nt.Notifications = ScoreManager.GetMgr().GetTeamNotification(nt.TeamID);
notificationTeams.Add(nt);
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中显示的输出是这样的
需要更改流的哪一部分才能正确显示unicode字符?
系统详细信息:
服务器:Apache,Ubuntu 16.02
客户端:Windows 10,Chrome
我的apache配置文件如下所示:
<VirtualHost *:80>
ServerName mycoolsiteA.mydomain.com
ServerAlias mycoolsiteB.mydomain.com
Alias /static /var/www/python/mysite/static
Alias /templates /var/www/python/mysite/templates
WSGIDaemonProcess my_app user=www-data group=www-data threads=5
WSGIScriptAlias / /var/www/python/mysite/start.py
WSGIScriptReloading On
<Directory /var/www/python/mysite>
WSGIProcessGroup my_app
WSGIApplicationGroup %{GLOBAL}
order deny,allow
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中加载CSS时,它显示以下内容.但是,这很随机.它"有时"有效,有时则无效.
我的示例网址是:https: //mycoolsiteA.mydomain.com/static/css/bs/bootstrap.min.css
我们有一个防火墙设备可以自动将http重定向到https,但我正在用https直接加载css.
然而,如果我刷新几次,或者在末尾添加ar = number,它将清除缓存并加载.但是,它会再次随机执行,直到我再次清除缓存.
在这里加载和工作:
有什么想法,方向可以解决这个问题吗?
我网站上的用户在文本字段中输入了特殊字符:哦
这些字符显然不是我可以从键盘输入的äö字符,因为当我将它们粘贴到程序员的记事本中时,它们分为两个部分:
在我网站的服务器端,我有一个PHP脚本,该脚本可识别用户输入中的非法特殊字符,并使用来将它们高亮显示为html错误消息preg_replace。
字符拆分也在那里发生,所以我得到一个普通的字母a和o以及一个奇怪的孤独xCC字符,该字符破坏了UTF-8字符串编码,json_encode结果导致函数失败。
处理这些字符的最佳方法是什么?我应该尝试替换特殊的吗?哦 字符并将其替换为常规字符,或者我能以某种方式捕获损坏的UTF-8字符并删除或替换它们吗?
我得到了基本结构:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
Run Code Online (Sandbox Code Playgroud)
和输入:
<input type="text" name="var"/>
Run Code Online (Sandbox Code Playgroud)
得到:
$var = iconv('UTF-8', 'ASCII//TRANSLIT', $_POST['var']);
//or
$var = $_POST['var'];
Run Code Online (Sandbox Code Playgroud)
并显示如下:
echo $var;
//or
print_r($var);
//or
print_r(iconv('UTF-8', 'ASCII//TRANSLIT', $var));
Run Code Online (Sandbox Code Playgroud)
我尝试强制一个新的标题:
header('Content-type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)
并使用 .htaccess:
AddDefaultCharset UTF-8
Run Code Online (Sandbox Code Playgroud)
没有任何效果:(唯一出现的是:jos?而不是josé
怎么解决?
我用 !我的MySQL用户密码中的@#$
但是在我的密码中使用这些字符时,PDO无法连接到MySQL服务器
$servername = "localhost";
$username = "test";
$password = "!@#$test";
$dbname = "test";
try {
$test = $_POST['test'];
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,
$password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO test (test)
VALUES (:test)");
$stmt->bindParam(':test', $test);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
SQLSTATE [HY000] [1045]拒绝访问用户'test'@'localhost'(使用密码:YES)
从密码中删除!@#$时,它可以正常工作