You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入CSV到Django模型时土耳其字符无法显示的问题求助

解决Django导入CSV时土耳其字符乱码问题

嘿,我懂你遇到的土耳其字符显示异常的困扰了!问题的核心其实是读取CSV文件时没有明确指定正确的编码格式,默认的系统编码往往和土耳其语常用的编码不匹配,所以才会出现乱码。

直接修改读取代码

你之前的代码里,fs.open(filename, mode='r')没有指定编码,会自动使用操作系统的默认编码(比如Windows上是GBK,Linux是UTF-8但也不一定适配土耳其语场景)。我们只需要在打开文件时加上编码参数即可:

情况1:CSV文件是UTF-8编码

修改读取部分的代码,明确指定UTF-8编码:

if request.method == 'POST' and request.FILES['csv_file2']:
    myfile = request.FILES['csv_file2']
    fs = FileSystemStorage()
    filename = fs.save(myfile.name, myfile)
    # 重点:添加encoding='utf-8'参数
    data = csv.reader(fs.open(filename, mode='r', encoding='utf-8'))

情况2:CSV文件是土耳其语常用的Windows-1254编码

如果用UTF-8还是不行,大概率你的CSV文件是Windows系统生成的,这类文件默认编码是windows-1254(土耳其语专属编码),这时候换成这个编码试试:

if request.method == 'POST' and request.FILES['csv_file2']:
    myfile = request.FILES['csv_file2']
    fs = FileSystemStorage()
    filename = fs.save(myfile.name, myfile)
    # 使用土耳其语常用的windows-1254编码
    data = csv.reader(fs.open(filename, mode='r', encoding='windows-1254'))

额外检查小技巧

不确定CSV文件的编码?可以用Notepad++打开文件,点击顶部菜单栏的「编码」选项,就能看到当前文件的编码格式,然后对应修改代码里的encoding参数就行。

内容的提问来源于stack exchange,提问作者İlkem Çetinkaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:45:56