口音,网址和Firefox

RS7*_*RS7 3 html php url urlencode utf-8

我遇到了一些问题,我想知道你们中是否有人可以帮助我.

我的网站和数据库设置为utf8.我在查询字符串部分中输入重音符时出现问题ã转到%E3,但如果我在页面中使用链接或表单,则会在网址中显示%C3%A3.

我能做什么?

编辑:让我试着澄清一点:

我正在尝试在我的URL(查询字符串)中使用带重音的字符,但是我很难在多个浏览器中使用它.某些浏览器(如Firefox和IE)会输出不同的百分比编码字符串,具体取决于我是在页面中使用表单还是在地址栏中键入重音字符.就像我在原始问题中所说的那样,在表单中输入的ã转到了网址中的%C3%A3,但如果我在地址栏中输入ã,则浏览器会将其更改为网址中的%E3.

这对我来说很复杂,因为如果我得到%E3,那么在php/html中我得到一个未知字符(这是钻石问号,对吗?)

希望这有帮助 - 让我知道其他情况.

bob*_*nce 6

ã在表格中输入转到网址中的%C3%A3

取决于表单编码,通常取自包含表单的页面的编码.%C3%A9是正确的UTF-8 URL编码形式ã.

如果我在地址栏中输入ã,浏览器会将其更改为网址中的%E3.

这取决于浏览器.当您在位置栏中的URL中放入非ASCII字符时:

http://www.example.com/test.p/café?café
Run Code Online (Sandbox Code Playgroud)

WebKit浏览器将它们全部编码为UTF-8:

http://www.example.com/test.p/caf%C3%A9?caf%C3%A9
Run Code Online (Sandbox Code Playgroud)

根据IRI,这是IMO最正确的.但是,出于历史原因,IE和Opera使用操作系统的默认系统编码来仅对输入到查询字符串中的文本进行编码.因此,在西欧Windows安装(使用代码页1252)上,您将获得:

http://www.example.com/test.p/caf%C3%A9?caf%E9
Run Code Online (Sandbox Code Playgroud)

对于系统编码中不可用的字符,IE和Opera将其替换为?.Firefox将在查询字符串中的所有字符时使用系统编码,否则使用UTF-8.

可怕且不一致,但用户手动输入查询字符串的情况非常少见.