Unicode 字符串在服务器端变成垃圾
我有一个情况。
我在 ASP.NET 2.0(C#) 中有一个标签。标签应显示荷兰语文本“Sähköpostiosoite”,我尝试从标记和代码隐藏中设置 Label.Text,但我在浏览器响应中看到的是“Sähköpostiosoite”。
最初分配的字符串“Sähköpostiosoite”被替换为“Sähköpostiosoite”。我不知道为什么会发生这种情况你能帮我诊断一下问题吗?
I have a situation.
I have a label in ASP.NET 2.0(C#). The label should display a dutch language text that is "Sähköpostiosoite", I tried setting the Label.Text both from markup and code-behind but what I see in the browser response is "Sähköpostiosoite".
Originally assigned string "Sähköpostiosoite" get replaced with "Sähköpostiosoite". I have no idea why this happens can you please help me diagnose the problem ??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要设置 HTTP 标头:
和/或添加 HTML 标记:
更多信息此处。
You need to set the HTTP header:
and/or add HTML markup:
More info here.
你检查过 HTML 的编码吗?在 IE 中,您可以通过右键单击并从“编码”子菜单更改活动编码来快速切换编码(FF 中也可能有一种方法,但我不知道)。如果更改编码(例如更改为 UTF-8)可以修复文本,那么您应该通过 HTTP 标头指定编码(可以使用 web.xml 中的
元素设置 site-wde)。配置或通过页面 HTML 中的 HTTP元素
查看此内容以获取有关
元素的信息:http://msdn.microsoft.com/en-us/library/hy4kkhe0.aspx。Have you checked the encoding of the HTML? In IE you can quickly switch between encodings by right-clicking and changing the active encoding from the Encoding sub-menu (there's probably a way to do it in FF too but I don't know it). If changing the encoding (e.g. to UTF-8) fixes the text then you should specify the encoding via a HTTP header (which can set site-wde using the
<globalization />
element in web.config or via HTTP<meta />
element in the page HTML.See this for info on the
<globalization />
element: http://msdn.microsoft.com/en-us/library/hy4kkhe0.aspx.我们发现了问题。
asp.net 页面是由我们内部的代码生成器生成的。将文件保存到磁盘时我们没有提供编码格式。我们通过告诉 code-gen 在保存文件时使用 UTF8 编码来纠正此问题,并解决了该问题。
We found the problem.
The asp.net page is generated by our inhouse code-generator. We did not supply the encoding format while saving the file to disk. We rectified this by telling the code-gen to use UTF8 encoding while saving the file and it resolved the issue.