2012-06-02 21 views
1

這是我的問題,我有一個數據庫在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') 
      )||'%' 
    )"; 

回答

3

你可以做SQL CONVERT(字符串,destination_encoding,source_encoding),這給?爲不能轉換的字符,你可以用更換下降。

如果你

$string = iconv('UTF-8','ASCII//TRANSLIT', $string); 

SELECT CONVERT(nom, 'US7ASCII', 'WE8ISO8859P1') 
FROM STUDENTS LIKE ... $string ... ; 

你依傍ASCII應該很好地完成。

ISO-8859-1也可以。