Impacted versions: Odoo 11 on windows server 2012

Steps to reproduce: 
Create a new out invoice, select a product and set a negative amount for unit price.
Print the invoice.

Current behavior:
in PDF the char "-" is shown as "|" even if the total amount is correct (amount1 - amount2 = total)

Expected behavior:
the printed invoice should show the char "-"

Video/Screenshot link (optional):
![image](https://user-images.githubusercontent.com/37513316/42877323-8c712b2e-8a89-11e8-9690-27f00e08b6b2.png)

this is the negative item on odoo:
![image](https://user-images.githubusercontent.com/37513316/42877389-bf04eba2-8a89-11e8-91c0-e38059673b42.png)


openerp/addons/base/ir/ir_qweb.py
_name = 'ir.qweb.widget.monetary'
    _inherit = 'ir.qweb.widget'
    def _format(self, inner, options, qwebcontext):
        inner = self.pool['ir.qweb'].eval(inner, qwebcontext)
        display = self.pool['ir.qweb'].eval_object(options['display_currency'], qwebcontext)
        fmt = "%.{0}f".format(display.decimal_places)
        lang_code = qwebcontext.context.get('lang') or 'en_US'
        formatted_amount = self.pool['res.lang'].format(
            qwebcontext.cr, qwebcontext.uid, [lang_code], fmt, inner, grouping=True, monetary=True
        ).replace(r' ', u'\N{NO-BREAK SPACE}').replace(r'-', u'\u2011')
        pre = post = u''
        if display.position == 'before':
            pre = u'{symbol}\N{NO-BREAK SPACE}'
        else:
            post = u'\N{NO-BREAK SPACE}{symbol}'
        return u'{pre}{0}{post}'.format(
            formatted_amount, pre=pre, post=post
        ).format(symbol=display.symbol,)
class HTMLSafe(object):
    """ HTMLSafe string wrapper, Werkzeug's escape() has special handling for
    objects with a ``__html__`` methods but AFAIK does not provide any such
    object.
    Wrapping a string in HTML will prevent its escaping
    """
    __slots__ = ['string']
    def __init__(self, string):