捕获并将Unicode文本(西里尔字母)插入MS Access数据库

克利夫顿之家

我继承了一个旧的Web应用程序,该应用程序使用经典的ASP将以表格形式收集的数据写入Access 2007数据库。

现在,他们需要它能够收集西里尔字母的输入。

我完全不熟悉代码页/字符集,并且使用非拉丁字母。

我尝试将输入表单页面上的字符集更改为ISO-8859-1,该字符集似乎确实存储了字符的ascii值(例如:#1076;)。因此,可以由浏览器很好地解释和读取,但是在将数据导出到excel传递给需要它的部门方面几乎没有用。

所以我的问题是:

有没有一种简单的方法可以从Web表单捕获西里尔字母并将其作为西里尔字母插入到我的访问表中?

或交替

访问数据库中是否有工具或设置可以将十进制值(#1076;)转换为访问本身内的西里尔字符。

戈德·汤普森

如果您坚持使用UTF-8作为页面,它们应该可以工作(但请参见下面重要说明)。虽然这是事实,访问并没有在内部存储Unicode字符为UTF-8的访问OLEDB驱动程序会照顾转换的为您服务。

请考虑以下示例脚本(65001UTF-8的“代码页”在哪里):

<%@ CODEPAGE = 65001 %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Classic ASP Unicode Test</title>
</head>
<body bgcolor="white" text="black">
<%
Dim con, cmd, rst
Const adVarWChar = 202
Const adParamInput = 1
Set con = CreateObject("ADODB.Connection")
con.Mode = 3  ' adModeReadWrite
con.Open _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\_wwwdata\unicodeTest.mdb;"
If Len(Trim(Request.Form("word"))) > 0 Then
    Set cmd = CreateObject("ADODB.Command")
    cmd.ActiveConnection = con
    cmd.CommandText = "INSERT INTO vocabulary (word, language, english_equiv) VALUES (?,?,?)"
    cmd.Parameters.Append cmd.CreateParameter("?", adVarWChar, adParamInput, 255, Request.Form("word"))
    cmd.Parameters.Append cmd.CreateParameter("?", adVarWChar, adParamInput, 255, Request.Form("language"))
    cmd.Parameters.Append cmd.CreateParameter("?", adVarWChar, adParamInput, 255, Request.Form("english_equiv"))
    cmd.Execute
    Set cmd = Nothing
End If
%>
<h2>Word list:</h2>
<table border=1>
    <tr>
        <th>word</th><th>language</th><th>english_equiv</th>
    </tr>
<%
Set rst = CreateObject("ADODB.Recordset")
rst.Open _
        "SELECT * FROM vocabulary ORDER BY ID", _
        con, 3, 3
Do Until rst.EOF
    Response.Write "<tr>"
    Response.Write "<td>" & rst("word").Value & "</td>"
    Response.Write "<td>" & rst("language").Value & "</td>"
    Response.Write "<td>" & rst("english_equiv").Value & "</td>"
    Response.Write "</tr>"
    rst.MoveNext
Loop
Response.Write "</table>"
rst.Close
Set rst = Nothing
con.Close
Set con = Nothing
%>
<h2>Add a new entry:</h2>
<form action="<% Response.Write Request.ServerVariables("SCRIPT_NAME") %>" method="POST">
<table>
    <tr>
        <td align="right">word:</td>
        <td><input type="text" name="word"></td>
    </tr>
    <tr>
        <td align="right">language:</td>
        <td><input type="text" name="language"></td>
    </tr>
    <tr>
        <td align="right">english_equiv:</td>
        <td><input type="text" name="english_equiv"></td>
    </tr>
    <tr>
        <td></td>
        <td align="center"><input type="submit" value="Submit"></td>
    </tr>
</table>
</body>
</html>

从Access数据库中名为[vocabulary]的表开始

AccessTableBefore.png

当我们加载ASP页面时,我们看到

        AspPage1.png

如果我们为俄语单词添加新条目

        AspPage2.png

然后点击“提交”,页面将会刷新

        AspPage3.png

如果我们查看Access中的表格,我们会看到

AccessTableAfter.png

重要的提示

请注意,您不应将Access数据库用作Web应用程序的后端数据存储。Microsoft强烈建议您不要这样做(参考:此处)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebird数据库无法识别unicode /西里尔字母

来自分类Dev

俄语西里尔文字输入数据库

来自分类Dev

数据库不接受西里尔字符

来自分类Dev

插入到ms Access数据库

来自分类Dev

无法将西里尔符号正确插入到SQL Server数据库的NTEXT字段中

来自分类Dev

Access数据库事务插入限制

来自分类Dev

将记录插入Access数据库

来自分类Dev

MS Access数据库错误

来自分类Dev

MS Access防止数据库锁定

来自分类Dev

MS Access数据库SQL查询

来自分类Dev

MS Access 数据库监控查询

来自分类Dev

使用Python将数据插入MS Access数据库

来自分类Dev

特殊字符(西里尔文,中文)到MySQL数据库

来自分类Dev

西里尔文符号的地理名称数据库编码

来自分类Dev

C#将数据从表单插入Access数据库

来自分类Dev

使用.NET Core将数据插入Access数据库

来自分类Dev

优化将数据插入Access数据库代码中

来自分类Dev

从MS ACCESS 2007数据库提取SSIS 2012数据

来自分类Dev

在python lxml库中使用西里尔字母的正确方法是什么

来自分类Dev

设置链接数据库(MS Access)路径而不访问链接数据库

来自分类Dev

如何从Oracle数据库查询外部MS Access数据库?

来自分类Dev

如何从Oracle数据库查询外部MS Access数据库?

来自分类Dev

Robotframework 的数据库库在西里尔字符的情况下返回问号 (?) 而不是实际字符

来自分类Dev

在Access数据库中插入特殊字符(例如'或+)

来自分类Dev

插入Access数据库不起作用

来自分类Dev

使用pyodbc插入并加入Access数据库

来自分类Dev

如何将值插入数据库(Microsoft Access)?

来自分类Dev

在Access数据库中插入特殊字符(例如'或+)

来自分类Dev

将货币插入 Access 数据库 C#?

Related 相关文章

热门标签

归档