我嘗試創建一個MySQL函數來將給定的字符串解析爲我可以在URL中使用的版本。所以我不得不消除一些特殊字符,並嘗試用循環來保持代碼簡單並且不必指定任何字符。用char替換MySQL函數
我當前的代碼是:
DECLARE parsedString VARCHAR(255);
# convert to low chars
SET parsedString = CONVERT(paramString USING latin1);
SET parsedString = LOWER(parsedString);
# replace chars with A
SET @x = 223;
charReplaceA: WHILE @x <= 229 DO
SET @x = @x + 1;
SET parsedString = REPLACE (parsedString, CHAR(@x USING ASCII), 'a');
END WHILE charReplaceA;
# convert to utf8 and return
RETURN CONVERT(parsedString USING utf8);
如果我嘗試使用我的代碼,這是行不通的。不知何故,它不能識別CHAR(@x USING ASCII)部分。
SELECT urlParser('aäeucn');
回報
aäeucn
如果我我的代碼更改爲
SET parsedString = REPLACE (parsedString, 'ä', 'a');
它在某種程度上工作並返回
aaeucn
沒有人有任何想法如何使用REPLACE( )與CHAR()?我不想指定任何可能的字符。
我意識到MySQL的ASCII碼與PHP碼不同。使用PHP 228返回ä,使用MySQL ASCII('ä')返回195.但是,如果我嘗試使用REPLACE()和CHAR(195使用ASCII),它也不起作用。 – SpaceHeroGuide