目标:
将带有UTF-8字符的CSV文件上传/发布到MVC操作,读取数据并将其粘贴到数据库表中.
问题:
只有纯文本字符才能通过.像á这样的UTF-8"特殊"字符没有正确传递,在代码和数据库中它们呈现为此字符=> .
更多:
我确信这不是我的C#代码的问题,尽管我已经包含了下面的重要部分.
我认为问题是上传的文件是以纯文本或"纯文本"MIME类型编码的,但我可以通过将文件扩展名更改为.html来更改它
摘要:
如何获得一个enctype属性设置为"multipart/form-data"的表单,以正确解释已发布文件中的UTF-8字符?
研究:
从我的研究来看,这似乎是一个普遍的问题,没有一个共同和明确的解决方案
我发现了比.Net更多的java和PHP解决方案.
csvFile变量的类型为HttpPostedFileBase
这是MVC动作签名
[HttpPost]
public ActionResult LoadFromCsv(HttpPostedFileBase csvFile)
我试过的事情:
1)
using (Stream inputStream = csvFile.InputStream)
{
byte[] bytes = ReadFully(inputStream);
string bytesConverted = new UTF8Encoding().GetString(bytes);
}
Run Code Online (Sandbox Code Playgroud)
2)
using (Stream inputStream = csvFile.InputStream)
{
using (StreamReader readStream = new StreamReader(inputStream, Encoding.UTF8, true))
{
while (!readStream.EndOfStream)
{
string csvLine = readStream.ReadLine();
// string csvLine = new UTF8Encoding().GetString(new UTF8Encoding().GetBytes(readStream.ReadLine())); // stupid... this can not be the way!
}
}
}
Run Code Online (Sandbox Code Playgroud)
3) …
我已使用 Azure Front Door 产品成功为自定义域配置了 SSL/HTTPS(URL 中包含“www”)。该配置需要一个 DNS CNAME 条目,将“www.cutegoat.com”转发到“cutegoat.azurefd.net”
当我访问没有“www”前缀的同一 URL 时,我仍然遇到 SLL 问题:“ https://cutegoat.com ”
我的 A 类型 DNS 记录仍然指向 Azure 为我的应用服务提供的 IP 地址。我考虑过改变这一点,但 Azure Front Door 设计者非常清楚我的“自定义主机名”必须有相应的 CNAME 记录:
我的域使用 GoDaddy,并且添加了来源为“cutegoat.com”的 CNAME 记录,但我仍然收到 Azure Front Door“需要 CNAME 记录”错误。该条目让我添加一个到“cutegoat.com.cutegoat.com”的映射
我认为 Azure Front Door 服务正在寻找源值为“@”的 CNAME 记录。但我猜测我无法输入该 CNAME 记录,因为我已经有一条源为“@”的 A 类型记录。
有谁知道正确的 DNS/Azure 前门配置以使 SSL 为我的“裸”自定义域工作?
与过去的 master 分支相比,有没有一种简单的方法可以查看 master 的变化?
我想查看过去 4 个月内发生的特定解决方案的所有更改。我在创建 PR 时得到的视图将是完美的,但好像我在 4 个月前创建了一个从 master 到 master 的 PR。