【问题标题】:How to prepare a string with foreign / accented characters for XML in C#? [duplicate]如何在 C# 中为 XML 准备带有外来/重音字符的字符串? [复制]
【发布时间】:2013-12-11 12:22:12
【问题描述】:

我想像这样转换一个字符串

"¿Cómo puede hacerse esto?"

变成可以在这样的 XML resx 文件中使用的东西:

"¿Cómo puede hacerse esto?"

我试过HttpUtility.UrlEncodeWebUtility.HtmlEncode 都没有成功。我在网上搜索过,似乎找不到合适的解决方案。

我想我可能需要将字符串放入一个字符数组并遍历每个字符并找出需要转换的字符。

谁能帮帮我?

【问题讨论】:

    标签: c# xml string


    【解决方案1】:

    如果您使用的是 asp.net 项目,则可以尝试使用HttpUtility.HtmlEncode,如果不是,则可以尝试使用 follwong sn-p 代码

            string str ="¿Cómo puede hacerse esto?";
            string newMStr = string.Empty; 
    
            foreach (var ch in str)
            {
                int chCode = Convert.ToInt16(ch); 
                if (chCode>127)
                {
                    newMStr += string.Format("&#{0};", chCode);
                }
                else
                {
                    newMStr += ch;    
                }
    
    
            }
    
    
            //Print  NewMstr
    

    【讨论】:

    • 谢谢 - 我已经尝试了上面的示例,但是当我将其更改为 Convert.Int32 时,我在 Convert.ToInt16 上遇到溢出异常,我最终得到 �这似乎不对。
    • 你能调试一下,然后给我看一下吗
    • 对于您提供的示例,代码非常适合我
    • 我现在已经对其进行了排序 - 您的代码现在对我来说工作正常。我将 detectEncodingFromByteOrderMarks 设置为 true(内容来自 CSV 文件)。将此属性设置为 false 可解决问题。
    猜你喜欢
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多