将外来字符转换为正常字符

时间:2012-09-18 15:50:31

标签: asp-classic vbscript

我有一个国际照片网站。当办公室上传来自国外的照片时,字幕和标题有时会有外国字符,例如:

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

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

现在这不仅仅是法国人的问题 - 它也是其他国家。在我提交到我的数据库之前,如何将这些外来字符转换为普通字符,例如:

,这怎么可能
  1. Francois Hollande

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

并且像这样它可以是一个函数

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

答案 2 :(得分:0)

This answer很可能会涵盖您的案例。

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