麻烦与西班牙语的文本编码

时间:2015-09-02 22:27:47

标签: php html mysql database character-encoding

我有一个网页上有一些关于西班牙语的文字,有些单词有重音和西班牙语字符,在网页上我有一个数据表检索信息,当我使用标签时,事情就是这样:

<meta charset="iso-8859-1">

http://i.imgur.com/sjq53ee.png

它正确显示了页脚上带有重音符号的文本,但来自数据表的信息会获得大量垃圾字符。

但是再次,如果我使用标签:

<meta charset="utf8"> or
<meta charset="latin1_spanish_ci">

http://i.imgur.com/M5eUyHA.png

我正确获取了数据表信息,但页脚上的文本现在得到了垃圾字符。

已经尝试了不同的编码和组合,仍然无法正常工作。

表和数据库在latin1_spanish_ci collat​​e

4 个答案:

答案 0 :(得分:0)

我会对具有变音符号的字母使用unicode编码。

答案 1 :(得分:0)

请采取此解决方案:

 <!DOCTYPE html>
  <html>
  <head>
  <meta charset="utf-8"><!-- Your HTML file can still use UTF-8-->
  <title>Untitled Document</title>
  </head>
  <body>
  <?php
   /*Just for your server-side code*/
  header('Content-Type: text/html; charset=ISO-8859-1');
  echo "àè";
  ?>
  </body>
  </html>`

我从这里得到了How to display special characters in PHP

答案 2 :(得分:0)

  • 您在源中有多少字节? (提供十六进制)
  • 致电mysqli_set_charset()
  • 时使用了什么?
  • 表格中列的CHARACTER SET是什么?
  • 你有<meta ... charset...>

请说明所有内容,以及任何输出。

要显示PHP的十六进制,请使用

$hex = unpack('H*', $text);
echo implode('', $hex);

要在表格中显示十六进制,请执行

SELECT col, HEX(col) FROM tbl WHERE ...

通过答案,我们可以确定你做错了什么以及如何解决它。

答案 3 :(得分:0)

好的,我所做的是使用第二个选项,数据库中的信息是正确的,对于页脚信息,我使用转义字符&Oacute;&Ntilde;可能不是最好的解决方案,但在打破我的头后整个下午我觉得这个更容易。