Thi*_*ham 6 php database utf-8 character-encoding
快速背景:我继承了一个包含英语和阿拉伯语文本组合的大型sql转储文件,并且(我认为)它最初是使用"latin1"导出的.在导入文件之前,我将所有出现的'latin1'更改为'utf8'.阿拉伯语文本在phpmyadmin中没有正确显示(我猜这是正常的),但是当我将文本加载到具有以下内容的网页时...
<meta http-equiv='Content-Type' content='text/html; charset=windows-1256'/>
Run Code Online (Sandbox Code Playgroud)
......一切看起来都很好,阿拉伯文字显示得很完美.
问题:我的客户真的非常挑剔,不想改变他的......
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Run Code Online (Sandbox Code Playgroud)
...相当于'Windows-1256'.我不认为这会是一个问题,但当我将字符集值更改为"UTF-8"时,所有阿拉伯字符都显示为带有问号的钻石.UTF-8不应该正确显示阿拉伯语文本吗?
以下是有关我的数据库配置的一些注意事项:
我一直在搜索堆栈溢出和其他论坛与我的问题有关的任何事情.我发现了类似的问题,但解决方案似乎并不适合我的具体情况.希望有人可以帮忙!
如果您不向我们展示您的代码,我们就无法找到您代码中的错误,因此我们为您提供的帮助非常有限。
您告诉浏览器将文档解释为 UTF-8 而不是 Windows-1256,但您实际上是否将使用的编码从 Windows-1256 更改为 UTF-8?
例如,
$ cat a.pl
use strict;
use warnings;
use feature qw( say );
use charnames ':full';
my $enc = $ARGV[0] or die;
binmode STDOUT, ":encoding($enc)";
print <<"__EOI__";
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=$enc">
<title>Foo!</title>
</head>
<body dir="rtl">
\N{ARABIC LETTER ALEF}\N{ARABIC LETTER LAM}\N{ARABIC LETTER AIN}\N{ARABIC LETTER REH}\N{ARABIC LETTER BEH}\N{ARABIC LETTER YEH}\N{ARABIC LETTER TEH MARBUTA}
</body>
</html>
__EOI__
$ perl a.pl UTF-8 > utf8.html
$ perl a.pl Windows-1256 > cp1256.html
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30112 次 |
最近记录: |