1

我的问题是这样的:我从 SQL Server 数据库中创建了一个包含客户数据的页面。我的网页是 utf-8 ......我可以看到:

编辑:如果我是新用户,则无法显示图像... ^^

在第一个“{{ rows_1 }}”中,您可以看到 W\xe4denswil,但在表格中它不显示。但为什么?此外,它必须是 Wädenswil(带有德语变音符号)。我尝试了很多东西来使用 utf-8 制作我的原始文件。我最后一次尝试是这样的:

rows_1 = unicode(cursor.fetchall(), 'utf-8')

但这意味着“强制转换为 Unicode:需要字符串或缓冲区,找到列表”

这是我使用的代码(来自 django 的视图):

  conn = pyodbc.connect('DRIVER={SQL Server};CHARSET=UTF8;SERVER=MAURITIUS;DATABASE=baan5c;UID=portal;PWD=P0rtalReader')
    cursor = conn.cursor()
    cursor.execute("SELECT d.t_bpid, d.t_nama, a.t_namc, a.t_hono, a.t_pstc, a.t_name FROM ttccom100070 d, ttccom130070 a WHERE d.t_cadr = a.t_cadr AND (d.t_bpid = '%s')"%form)
    rows_1 = unicode(cursor.fetchall(), 'utf-8')

  return render_to_response('kundendaten.html', { 'rows_1': rows_1, 'rows_2': rows_2, 'rows_3': rows_3, 'current_date': now, 'form':form}, context_instance=RequestContext(request))

在这里我的html ...:

<h2>Customer Data</h2>


{{ rows_1 }}
</fieldset>

<fieldset class= "field1">
<table border="1" class="name">
    <tr>
        <th colspan="6">Customer Overview</th>
    </tr>
    <tr>
        <th class="CUSCos">Customer Number</th>
        <th class="CUSNam">Name</th>
        <th class="CUSStr">Street</th>
        <th class="CUSNr">Number</th>
        <th class="CUSZip">Zip Code</th>
        <th class="CUSCit">City</th>
    </tr>
    {% for row in rows_1 %}
    <tr>
        <td>{{ row.0 }}</td>
        <td>{{ row.1 }}</td>
        <td>{{ row.2 }}</td>
        <td>{{ row.3 }}</td>
        <td>{{ row.4 }}</td>
        <td>{{ row.5 }}</td>
    </tr>
    {% endfor %}
</table>

我使用 win7 32bit、python 2.7.3、django 1.4.1、html5 和 css3

4

1 回答 1

0

我找到了解决方案。这很容易,因为 pyodbc 有一个功能。现在正确的行是:

conn = pyodbc.connect('DRIVER={SQL Server};CHARSET=UTF8;SERVER=%s;DATABASE=%s;UID=%s;PWD=%s' % (x, y, w, p), unicode_results =真)

它只有这个:

, unicode_results=真

你必须添加...

于 2013-05-06T08:34:33.897 回答