![]() |
1
1
我认为你的思维模式可能缺少的一个重要部分是 字节 和 人物 在不同的步骤和不同的级别,文本要么被视为不透明、无意义的字节,要么计算机将文本感知为 人物 . 当计算机将文本视为字符时,它将以某种形式的字节表示存储在内存中,是的,但这是一个无关的实现细节,不同程序在内存中的表示方式可能不同。重要的是,计算机知道“is”,并且可以在任何时候以任何有效的编码生成这些字符的字节表示。 浏览器浏览器是 角色感知 。浏览器内部发生任何事情时,都会将文本视为文本。当它从服务器获取任何文件时, it looks at the HTTP headers or other fallback indicators 为了找出该文件的编码方式,从该编码中解码出来,并将所有文本视为已知的特定字符。 在表单中输入文本时,操作系统会处理底层细节,包括从键盘接收按键代码,通过所选键盘布局映射这些代码,可能涉及用于文本转换的IME(例如enterè),并向浏览器提供 人物 .
当需要将这些字符发送到服务器时,浏览器会根据表单等各种因素确定需要使用什么编码
PHP
默认情况下,PHP不会对编码做任何事情。它不支持文本,并将所有数据视为无意义的字节。因此,您必须确保在代码中知道任何接收到的文本的编码方式,并相应地处理它。PHP
将
解码URL百分比编码以进行填充
无论你从PHP输出什么,都会按原样输出。这取决于它来自哪里。来自磁盘上(源代码)文件的任何内容都取决于它在文本编辑器中的保存方式。来自数据库的任何内容都取决于您如何建立数据库连接;数据库通常是文本感知的,将以您请求的编码为您提供文本,您可以对其进行配置。通常最好 ensure everything is in UTF-8 all the way . PHP和/或web服务器应确保输出正确的标头,这些标头正确地表示您输出的内容的编码方式,以便浏览器能够正确地确定它。 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 8 月前 |
![]() |
David · 何时实际应用字符编码? 9 月前 |
![]() |
Karlomanio · 区分两个西里尔字母字符串 1 年前 |
![]() |
Gabriel Lucizano · 为什么我无法访问C中的文件 1 年前 |
![]() |
Mira Kumar · 在网页上显示特殊字符 1 年前 |
![]() |
jay.sf · 如何在pdf中使用UTF-8编码的字符矢量? 2 年前 |
![]() |
Kevin Patel · UTF-8内容在Java中是否可能格式错误 2 年前 |