2012-09-18 35 views
2

我有一个国际照片网站。当那些来自国外的办公室上传照片,字幕和标题有时有外文字符,如:将外来字符转换为正常

1. François Hollande 
2. ValŽrie Trierweiler 

而这些获取存储在数据库(MySQL的 - latin1_swedish_ci),原样。现在,当谈到搜索弗朗索瓦,没有法文字符,用简单的英文,这些特定的照片不显示。

现在这不仅仅是法国人物的问题 - 也是其他国家的问题。这怎么可能,我之前递交到我的数据库,这些外来字符转换为正常的,如:

  1. 弗朗索瓦·奥朗德
+0

有一个名为TRANSLIT http://pecl.php.net/package/translit,也许你可以从那里得到灵感PHP模块。 – wroniasty

回答

5

你可以使用Adodb.Streamascii字符集。这里有一个例子:

With Server.CreateObject("Adodb.Stream") 
    .Charset = "ascii" 
    .Open 
    .WriteText "François Hollande ValŽrie Trierweiler ÖÇŞİĞÜöçşığü ôûõòùìñ" 
    .Position = 0 
    Response.Write .ReadText 
End With 

上面的脚本必须正确打印Francois Hollande ValZrie Trierweiler OCSIGUocsigu ouoouin

0

This answer将最有可能涉及你的情况。

您不需要外部库,您可以使用多种方法检查一致性,使用正则表达式作为我个人偏好的不是太大的字符串。

1

而且这样也可以是一个功能

Function unaccent(strg) 
    With Server.CreateObject("Adodb.Stream") 
    .Charset = "ascii" 
    .Open 
    .WriteText strg 
    .Position = 0 
    unaccent = .ReadText 
    End With 
End Function 
相关问题