You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 17 QWeb报表用web.html_container时货币符号显示异常求助

Odoo 17 QWeb报表货币符号显示异常问题解决

问题原因

web.html_container是最基础的HTML容器模板,只提供最外层结构,没有自动添加UTF-8编码声明,也不包含货币符号渲染所需的样式和JS资源。而web.basic_layout会自动插入<meta charset="UTF-8">标签,同时加载处理货币Unicode字符的相关依赖,保证像₱这类符号能正确解析。你看到的 ₱是典型的UTF-8字符被当作ISO-8859-1编码解析导致的乱码,核心问题就是缺少UTF-8编码声明。

修复方案

方案一:手动添加编码声明和依赖资源

直接在模板里添加UTF-8编码的meta标签,同时引入Odoo内置的通用资源,确保货币渲染正常:

<odoo>
    <data>
        <template id="report_voucher">
            <t t-call="web.html_container">
                <t t-foreach="docs" t-as="o">
                    <html>
                        <head>
                            <meta charset="UTF-8"/>
                            <!-- 引入Odoo通用资源,处理货币渲染 -->
                            <t t-call="web._assets_common"/>
                            <t t-call="web._assets_backend"/>
                        </head>
                        <body>
                            <!-- 报表内容 -->
                            <t t-esc="line.debit" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
                        </body>
                    </html>
                </t>
            </t>
        </template>
    </data>
</odoo>

方案二:复用basic_layout的编码结构

如果不想改动太多,可以直接嵌套web.basic_layout,它会自动处理编码和资源加载,你只需要在内部写报表内容:

<odoo>
    <data>
        <template id="report_voucher">
            <t t-call="web.html_container">
                <t t-foreach="docs" t-as="o">
                    <t t-call="web.basic_layout">
                        <div class="page">
                            <!-- 报表内容 -->
                            <t t-esc="line.debit" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
                        </div>
                    </t>
                </t>
            </t>
        </template>
    </data>
</odoo>

说明

  • 方案一适合需要高度自定义报表结构的场景,灵活度更高;
  • 方案二更简洁,直接复用Odoo的内置配置,避免遗漏必要依赖。

内容的提问来源于stack exchange,提问作者law rence

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:31:10