Php utf8网站和latin1数据库表字段

Php utf8网站和latin1数据库表字段,php,mysql,html,Php,Mysql,Html,我正在使用mysql数据库、innoDB和MyISAM这两个引擎。我想看看utf8和latin1之间的区别,所以我做了一个测试: 网站上的代码: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 然后我输入了中文单词“我爱你" 和网站上的“ĀĂ㥹ĆĈĈĈĈĈĈĈĈĈĈĈĈĈĈĈĈ 输出: 网站展览“我爱你“和”ĀĂ㥹ĆĈĈĈĈĈĈĈĈĈĈĈ 数据库表字段显示“æˆçˆä½”和“Ā和#2

我正在使用mysql数据库、innoDB和MyISAM这两个引擎。我想看看utf8和latin1之间的区别,所以我做了一个测试:
网站上的代码:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
然后我输入了中文单词“我爱你" 和网站上的“ĀĂ㥹ĆĈĈĈĈĈĈĈĈĈĈĈĈĈĈĈĈ

输出:
网站展览“我爱你“和”ĀĂ㥹ĆĈĈĈĈĈĈĈĈĈĈĈ 数据库表字段显示“æˆçˆä½”和“Ā和#25”。

我测试了以下所有更改:
1) 将网站元更改为
latin-1
,表字段属性更改为
utf-8

2) 将网站元更改为
utf-8
,表字段属性也更改为
utf-8

3) 将网站元更改为
latin-1
,表字段属性也更改为
latin-1

但是输出仍然是一样的,输出没有变化。为什么?

是不是我不能用这种方法进行测试?如果是,我如何测试
utf-8
latin-1
之间的差异?
如何使数据库表字段显示单词“我爱你“和”ĀĂ㥹ĆĈĈĈĈĈĈĈĈĈĈĈ


我开发了一个像Facebook.com这样的支持多种语言的社交网站,我应该在数据库字段中使用
utf-8
?utf-8的缺点是每个字符需要3个字节,但
latin-1
只需要1个字节。为了节省存储空间,最好使用
latin-1
,但我不确定是什么如果我使用
拉丁语-1
而不是
utf-8
,这将是未来的问题。有人能告诉我如何决定使用哪个字符集吗?

是的,如果你打算支持其他语言,utf-8是你最好的选择。

1)你可能需要注意的是,如果不使用一些kin,你就无法真正达到数据库记录的峰值Phpmyadmin有一个字符集配置选项,软件产品有一个内部假定的字符集,甚至命令提示符窗口也有一个代码页。重要的是确保您从数据库中准确地返回您放入的内容,而不是它如何存储在表中使用“集合名称字符集”在整个连接中保持一致的字符集

2) UTF-8显然是世界发展的方向,因为它可以工作,并且可以存储来自每种语言(书写系统)的字符你很可能会遇到。使用拉丁语-1,你会删掉所有不是来自西欧的语言——这不仅意味着汉语、西里尔语、希腊语/希伯来语等等,还意味着东欧、土耳其和许多其他基本上使用拉丁字母加上某些特定字母的地方

3) UFT-8是,并且预计在未来,大体上是最经得起未来考验的解决方案

4) 对于单语应用程序来说,从一开始就做正确的事情(即UTF-8)要安全得多(也更明智),而不是在以后发现需要更多时转换多gygabyte表。必须这样做的人都不喜欢这种体验


5) 磁盘空间是一种商品,一天比一天便宜——如果你要做“社交”,你应该带上一船(如果事情进展顺利,你无论如何都需要它)忘了它吧,还有其他问题比磁盘更快地困扰着你:负载下的性能、访问并发性、集群和多服务器负载平衡。我不记得有哪个社交网络因为这3个字节而抱怨问题。

但当我在数据库表字段中使用拉丁语-1时,网站仍然成功地显示了从表中检索拉丁-1字符后,请输入中文字符和utf-8字符。既然拉丁-1可以完成这项工作,为什么还需要数据库中的utf-8?选择使用utf-8而不是拉丁-1还有其他原因吗?它可以完成这项工作,只要您只存储和检索整个字段。开始使用SUBSTR、like或按字母和y排序之类的东西你会大吃一惊的。好吧,我会用SUBSTR测试它,比如DECSI see的and ORDER,所以实际上我还需要将phpmyadmin的字符集更改为latin1,而不仅仅是数据库中的表字段。好吧,我会在我的项目中使用UTF-8。谢谢你的建议:)
latin1_swedish_ci