如何在ReactJs中渲染重音?

时间:2015-04-06 13:12:20

标签: javascript reactjs

我正在尝试使用ReactJS和JSX渲染一个具有重音字符的元素,但它没有返回我想要的内容。

我的JSX:

var Orcamento = React.createClass({
    render: function() {
        return (
            <div>
                <h1>Orçamento</h1>

            </div>
        );
    }
});

React.render(
    <Orcamento/>,
    document.getElementById("orcamento")
);

我呈现的javascript:

var Orcamento = React.createClass({displayName: "Orcamento",
    render: function() {
        return (
            React.createElement("div", null, 
                React.createElement("h1", null, "Orçamento")

            )
        );
    }
});

React.render(
    React.createElement(Orcamento, null),
    document.getElementById("orcamento")
);

我在浏览器中的结果:

Orçamento

我在<meta charset="UTF-8">标记内的索引文件中设置了head,如果在页面内容中直接键入此单词,则重音字符在页面标题和正文中起作用,但在呈现时不起作用按ReactJs

如何解决此问题?

3 个答案:

答案 0 :(得分:5)

我解决了!问题是因为我正在使用JSX编译gulp,而生成的文件不是UTF-8,因此我将UTF-8中的文件保存为正常工作!

答案 1 :(得分:3)

你看到的是Orçamento,它是用ASCII渲染的UTF-8字节数组的结果,可能是代码页ISO 8859-1

ReactJS不支持HTML中的非ASCII字符。

试试这个:

var Orcamento = React.createClass({
    render: function() {
        return (
            <div>
                <h1> { 'Orçamento' } </h1>

            </div>;
        );
    }
});

或者只需将orçamento替换为Or&#231;amento

JSX gotchas中已对此进行了详细解释。

答案 2 :(得分:-1)

同样使用charset utf-8,尝试使用此库: https://github.com/mathiasbynens/he

import { decode } from 'he';

class Post extends Component { 
  render() {
    <h1>{ decode(this.props.post.title) }</h1>  
  }
}