我一直在网上仔细查看,但似乎找不到包含此类转换的表格。我找到的那些有一些错误并且不太可靠,所以我找了一些官方表格或类似的,但不幸的是我没有..所以我在这里..
如标题中所述,我想做的是,例如,知道“ñ”代表什么(这个我已经知道..“ñ”),但不仅是西类牙语字符,还有其他字符(我已经知道波兰语了)。
主要问题是我在 PHP 中有一个字符串,有时可能会以“eñe”(没关系)和其他“eñe”的形式出现......最近我应该能够将它更改为“eñe"所以它是可读的..但如果没问题我不想改变它。为此,我使用了 utf8_decode 函数,但如果字符串可读,它仍会将“ñ”更改为“■”(但为白色)。这就是为什么我不能总是解码字符串的原因,并且如果我使用 mb_detect_encoding 函数,我总是会得到“UTF-8”作为响应。这不是很有帮助。
一旦我知道了所有的 utf8 位字符,例如“ñ”代表“ñ”,“Ź”代表“Ź”等,我打算做一个基本上将一个替换为另一个的功能。 . 这与 utf8_decode 做的有点相同.. 除非这里有人有更好的解决方案!
提前致谢! 问候!
最佳答案
你为什么要这样做?您想恢复损坏的数据吗?
它不应该真的作为通常业务代码流的一部分来完成。您需要做的就是确保您的 web 应用程序的所有层都正确使用 UTF-8。 PHP 源、HTTP 响应 header 和正文、数据库表、数据库连接等。另见 PHP UTF-8 cheatsheet .
如果您实际上想将此作为一项一次性任务来恢复损坏的数据,那么最好知道您问题中的损坏数据表示未正确存储的 UTF-8 数据或显示为 ISO-8859-1。您只需要将数据读取为 ISO-8859-1 并写入为 UTF-8。一度。然后以正确的方式去做。
作为证据,ñ
( Unicode Character 'LATIN SMALL LETTER N WITH TILDE' (U+00F1) ) 存在于字节 0xC3
和 0xB1 的 Unicode( UTF-8 ,多字节编码)中
。当这些字节使用单字节编码(如 ISO-8859-1)进行编码时,0xC3
变为 Ã
而 0xB1
变为 ±
。另见 ISO-8859-1 codepage layout .
关于php - 我在哪里可以找到一个 UTF8 位到字符表以将例如 "ñ"转换为 "ñ"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3920432/