可能重复:
UTF-8一直通过
所以我在mysql数据库中保存了一些数据,并用"变形金刚"存储在那里.当我谈到变音符号时,我指的是这些德语字母:ö,ä,ü及其大写的吊坠.
所以现在我通过PHP执行一个查询,如下所示:
$query = "SELECT * FROM tcms_references WHERE id =".$row->id;
$erg = mysql_query($query);
$rowt = mysql_fetch_object($erg);
foreach($row as $x) {
echo $x
}
Run Code Online (Sandbox Code Playgroud)
现在,我的数据库中没有保存德语单词"Baumfällung".执行PHP查询并在屏幕上显示为"Baumfällung".
我的问题:在哪里可以将UFT-8设置为PHP中的Standart?有什么功能吗?
西班牙语特殊字符显示不正确,如下所示:'Árbol'显示为' bol'.
1)正确保存数据库中的文本.'Árbol'在数据库上看起来很完美.
2)如果我插入一个新单词,例如.'Tétrico',它在数据库中正确保存.
我一直遇到这个问题,因为我将项目移动到另一台服务器,在localhost(Ubuntu服务器)上工作完美.
我尝试了所有阅读类似问题的内容:
在my.cnf中,我添加了以下行:
init_connect ='SET NAMES utf8'
被character_set_server = UTF8
它只是不起作用.
我还可以做些什么?
我已经在localhost上复制了我所做的更改(因为项目在这里工作得很好,所有内容都正确显示)到新服务器,但没有任何改变.
\n这是我的问题,我有一个阿拉伯语数据库 mysqli UTF8_general_ci 并且我的 php 文件的字符集是 UTF-8\n当我选择数据时,我得到“????????????”。
\非 php 我的管理员我可以毫无问题地写入和读取,在 php 上我也可以,但问题是当我从数据库获取数据时!这是我的代码:
<meta charset="UTF-8"/>\n\n$connexion = new mysqli(HOST_DB,USER_DB,MDP_DB,DB_NAME);\n if ($connexion->error) {\n die(\'Une erreur s\\\'est produite :\' .$connexion->error);\n }\n else{\n $sql = "SELECT nom, description, date, formateur, image, prix, lieux FROM news";\n if ($result = mysqli_query($connexion,$sql)) {\n while ($ligne = mysqli_fetch_assoc($result)) {\n echo\'\n <ul>\n <li><figure>\n <figcaption>\n <h1>\'.$ligne["nom"].\'</h1>\n <p>\'.$ligne["description"].\'</p>\n <strong>\xd8\xa7\xd9\x84\xd9\x8a\xd9\x88\xd9\x85:\'.$ligne["date"].\'</strong><br/>\n <strong>\xd8\xa7\xd9\x84\xd9\x85\xd9\x83\xd8\xa7\xd9\x86:\'.$ligne["lieux"].\'</strong><br/>\n <strong>\xd8\xa7\xd9\x84\xd9\x85\xd8\xaf\xd8\xb1\xd8\xb3:\'.$ligne["formateur"].\'</strong><br/>\n <strong>\xd8\xa7\xd9\x84\xd8\xab\xd9\x85\xd9\x86: \'.$ligne["prix"].\'\xd8\xaf\xd9\x8a\xd9\x86\xd8\xa7\xd8\xb1</strong>\n </figcaption>\n <img src="Images/\'.$ligne["image"].\'" height="250px" width="250px">\n </figure></li>\n </ul>\n \';\n }\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n 我得到了基本结构:
<!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é
怎么解决?
为了更多地了解字体渲染/编码,我更加好奇为什么当我将表情符号复制并粘贴到空白<html>页面并简单地将.html文件保存在我的机器本地,甚至启动本地php服务器时在那里提供带有上述表情符号的文件,它们或者分别显示为一些奇怪的字符(ðŸ〜‡ðŸμðŸ™)或空白.但我知道,当我直接输入它们的堆栈溢出请求textarea时,它们将在我的浏览器中正确呈现,并在查看此页面时按预期显示.
我的理解是,由于mac osx现在附带了正确的表情符号字体,因此它们应该被渲染为.那么您现在正在查看的HTML页面与我保存在计算机上的本地页面之间的断开连接在哪里?
推荐阅读将不胜感激!:)错误....
我有这个代码:
<?php
$conn = mysqli_connect("localhost", $db['username'], $db['password'], "the_table");
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM xlsws_images";
if(!$result = $conn->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
$path = $row['image_path'];
echo $path;
}
?>
Run Code Online (Sandbox Code Playgroud)
它按预期工作,直到它到达一个带有image_path双引号的行,例如product/1/1”-wood-wheel-casters-set-of-4.png.在这种情况下,它返回没有双引号的路径,就像这样product/1/1-wood-wheel-casters-set-of-4.png.
是什么让这些报价消失,我怎么能避免这种情况?
表是用以下命令创建的:
\n\n CREATE TABLE IF NOT EXISTS `mathsqs` (\n `questions` varchar(5000) NOT NULL,\n ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;\nRun Code Online (Sandbox Code Playgroud)\n\n我已经使用 mysqli 通过 PHP 插入了数据。
\n为了确认插入,我尝试了SELECT * FROM mathsqs LIMIT 1Windows 命令行。它显示非英语字符的问号。
如何在 MySql 命令行中查看确切的发布数据?
\n\n我试图处理的示例数据:
\n\n\n\n\xe0\xae\x87\xe0\xae\xb0\xe0\xaf\x81 \xe0\xae\x8e\xe0\xae\xa3\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0 \xae\xbf\xe0\xae\xa9\xe0\xaf\x8d \xe0\xae\xaa\xe0\xaf\x86\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\x95\xe0\xaf \x8d\xe0\xae\x95\xe0\xae\xb2\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\xb2\xe0\xae\xa9\xe0\xaf\x8d 3375 \xe0\xae\ x85\xe0\xae\xb5\xe0\xaf\x8d\xe0\xae\xb5\xe0\xaf\x86\xe0\xae\xa3\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\ xe0\xae\xbf\xe0\xae\xa9\xe0\xaf\x8d\xe0\xae\xae\xe0\xaf\x80.\xe0\xae\xaa\xe0\xaf\x86.\xe0\xae\xb5 15
\n
我想将数据库列排序规则设置为俄语和芬兰语。我发现有俄语或芬兰语校对,但没有同时校对。
对于俄罗斯符号 ALTER TABLE Teams CHANGE Name CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL;
对于芬兰符号 ALTER TABLE Teams CHANGE Name CHARACTER SET cp1251 COLLATE latin1_swedish_ci NOT NULL;
是否有可能同时存储 RU/FI 符号?
我正在尝试从sql server数据库中获取一些数据并在json中打印,但是数据库中的某些数据位于UTF-8(阿拉伯语)中。我在网上搜索并尝试了许多解决方案,但是没有一个对我有效,任何帮助都将受到欢迎。这是我的代码:
<?php
$serverName = "127.0.0.1"; //serverName\instanceName
$connectionInfo = array( "Database"=>"filmnak_com_", "CharacterSet" => "UTF-8", "UID"=>"filmnak", "PWD"=>"G5j^wk44");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$sql = "SELECT CAST(ID AS INT) AS ID, CAST(Film AS TEXT) AS Film ,CAST(Name AS TEXT) Name FROM dbo.Movies";
$result = sqlsrv_query( $conn, $sql);
if( $result === false ) {
die( print_r( sqlsrv_errors(), true));
}
// looping through all results
// products node
$response["Info"] = array();
while ($row = sqlsrv_fetch_array($result)) {
// temp user array
$Info = array();
$Info["ID"] …Run Code Online (Sandbox Code Playgroud) 我正在以 csv 格式导出数据表。当我用 Excel 打开文件时,我遇到了大数字(大约 20 位数字)的问题。我对特殊字符也有疑问。我猜这是一个格式问题。但我不知道如何纠正这个问题。
我的Js文件中的代码:
dom: 'Bfrtip',
buttons: [
{
extend: 'csv',
text: 'csv',
fieldSeparator: ';' // with ';' we can export the file in csv and each column is in one column. Without ';' everything is in one column
},
'pdf',
'print'
]
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助。