【问题标题】:How to read a string with UTF8 coding using linq to entities如何使用 linq 读取具有 UTF 8 编码的字符串到实体
【发布时间】:2011-12-06 17:49:15
【问题描述】:

我正在尝试使用 Linq 读取 LimeSurvey 表到实体。我的问题是 LimeSurvey 以 UTF8 存储字符串,而 .Net 不喜欢它...

所以,我有一个简单的函数来列出我的所有调查,我如何告诉 Linq 读取 UTF8 格式的字符串?

我的功能:

public static List<Lime_Surveys> List()
    {
        using (LimeSurveyEntities db = new LimeSurveyEntities())
        {

            IQueryable<Lime_Surveys> list = db.Lime_Surveys.Include("Lime_Surveys_LanguageSettings");

            return list.ToList();
        }
    }

【问题讨论】:

  • @Henk Holterman:Lime_Surveys 表有几个字符串字段,都有相同的问题......每次使用像“é”这样的字符时,字符串在 .net 上显示错误
  • 'wrong' 并不是一个问题报告。如果您想要答案:示例、详细信息、十六进制视图。
  • @Henk Holterman:我认为问题很明确。我在数据库中有一个字符串,该字符串从 utf8 中的 php 程序存储,像 éãçí 等字符被符号替换。读取时,php 显示它们正常,.Net 显示它们在数据库中的存储方式。我知道它是 utf8,因为 notepad++ 在使用该选项时会正确显示字符串。
  • @okrumnow:谢谢,效果很好。如果您将 if 作为答案,我会投票并将其标记为已接受。

标签: c# linq limesurvey


【解决方案1】:

你需要改变你读取的字符串的编码使用

Encoding.UTF8.GetString(Encoding.Default.GetBytes(yourstring))

看看这个答案:Get correct output from UTF-8 stored in VarChar using Entity Framework or Linq2SQL?

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 2017-02-04
    • 2019-12-27
    • 2018-08-01
    • 1970-01-01
    • 2014-06-09
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多