.net - 不在字符集中的 HTML 编码字符

标签 .net c++ html encoding character-encoding

我们有一个使用 ISO-8859-1 字符集的网络应用程序。有时,用户会使用包含 Š 等字符的“奇怪”名称(为方便起见,此处编码为 html)。 我们将其存储在我们的数据库中,但是 我们无法正确显示它。

处理此问题的最佳方法是什么?我在想我应该使用其 HTML 实体编号编码( Š 到 Š)自动转换字符集之外的字符

但我在寻找如何自动执行此操作时遇到了问题(不使用包含所有值的表格)。

此代码适用于扩展的 ASCII 字符,如“å”(存在于 ISO-8859-1 中)。我想对其他角色做同样的事情。我可以使用这些 HTML 实体编码值中的模式吗?

unsigned int c;  
for( int i=0; i < html.GetLength(); i++)  
{  
    c = html[i];  
    if( c > 255 || c < 0 )  
    {  
        CString orig = CString(html[i]);  
        CString encoded = "&#";  
        encoded += CTool::String((byte)c);  
        encoded += ";";  
        html.Replace(orig, encoded);  
    }  
}  

最佳答案

网页应指示浏览器以 UTF-8 格式显示响应。这通常通过在 Content-Type 响应 header 中提供字符集来实现,例如 text/html;charset=UTF-8

Response.AppendHeader("Content-Type", "text/html;charset=UTF-8");

只有 HTML/XML 实体存在,以便您能够以 UTF-8 以外的编码保存网页源。

关于.net - 不在字符集中的 HTML 编码字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450934/

相关文章:

c# - 从 C# 到 C++ 的回调函数

c++ - Windows Phone 7 SDK C 或 C++

c++ - Qt - 混合 Qt 和 std::C++ 类型

python - 改进模板标签的功能 - Django

html - 消除 BootStrap 中的移动断点

javascript - 如何仅在 iframe 加载时运行代码

c# - 如何在 MVVM 中绑定(bind)选定项目

.net - 确定 Application_BeginRequest 和 Application_EndRequest 何时绑定(bind)

.net - 在 .Net 中调用 Web 服务时绕过无效的 SSL 证书错误

c# - 是否可以在 .NET 中逐行分析?