这是我的问题,我在ISO-8859-1中找到了一个数据库 我有我的UTF-8网页,我想从我的查询中删除重音 我能找到没有重音符号的名字但是如果他们有名字我就找不到它们了 (在那里我有一个带口音的名字,我找不到名字)请帮助,我在这里死了... 我有这个:
$el=array(); //<----------------------------------------------------vowels to remove
$el[]=iconv('UTF-8','ISO-8859-1','á');
$el[]=iconv('UTF-8','ISO-8859-1','é');
$el[]=iconv('UTF-8','ISO-8859-1','í');
$el[]=iconv('UTF-8','ISO-8859-1','ó');
$el[]=iconv('UTF-8','ISO-8859-1','ú');
$string='Francisco Gutiérrez'; //<----------------------------------------target
$string=strtolower($string); ///<----------------------------------string to iso
$string=iconv('UTF-8','ISO-8859-1',
$string);
$tem3="SELECT nom||' '||app||' '||apm as NAME
FROM STUDENTS
where
(
upper(
replace(
replace(
replace(
replace(
replace(
lower(NAME),'".$el[0]."','a'),
'".$el[1]."','e'),
'".$el[2]."','i'),
'".$el[3]."','o'),
'".$el[4]."','u')
)
like '%'||
upper(
replace(
replace(
replace(
replace(
replace(
'".$string."','".$el[0]."','a'),
'".$el[1]."','e'),
'".$el[2]."','i'),
'".$el[3]."','o'),
'".$el[4]."','u')
)||'%'
)";
答案 0 :(得分:3)
您可以执行SQL CONVERT(string,destination_encoding,source_encoding),它为?
提供不可转换的字符,您可以删除替换。
如果你这样做
$string = iconv('UTF-8','ASCII//TRANSLIT', $string);
SELECT CONVERT(nom, 'US7ASCII', 'WE8ISO8859P1')
FROM STUDENTS LIKE ... $string ... ;
你可以使用ASCII,这应该很好。
ISO-8859-1可能也会这样做。