如何在放入数据库之前将表单中输入的特殊字符转换为相似的英文字符?

时间:2011-10-21 20:08:19

标签: php mysql

e.g。我们有要求名字姓氏国家,国家是下拉名单的形式,但是名字是免费入场。我们需要确保输入字段中没有特殊字符。而是将它们转换为英语。 例如

Á -> A,á -> a,Č -> C,č -> c,ď -> d,é -> e,ě -> e,É -> E,Ě -> E,í -> i,Í
-> i,Ň -> N,ň -> n,Ó -> O,ó -> o,Ř -> R,ř -> r,Š -> S,š -> s,ť -> t,Ú -> U,ú -> u,Ů -> U,ů -> u,
Ý -> Y,ý -> y,Ž -> Z,ž -> z

有没有办法在php或mysql中做到这一点?

2 个答案:

答案 0 :(得分:1)

使用php函数utf8_encode

或检测编码,如果不是utf-8则更改编码,如下所示:

<?php
//$s is a string from whatever source
mb_detect_encoding($s, "UTF-8") == "UTF-8" ? : $s = utf8_encode($s);
?>

答案 1 :(得分:0)

如果您可以使用PHP&gt; = 5.3,那么normalizer.normalize()应该可以胜任。顺便说一下,你要做的是删除变音符号。如果您使用的是早期版本的PHP,那么如果您启用intl PHP扩展程序(如此处评论How to remove diacritics from text?),您应该可以使用相同的功能

修改:找到相关问题How do I remove accents from characters in a PHP string?