Chart.js提示框(Tooltip)韩文乱码问题求助
解决Chart.js提示框(Tooltip)韩文乱码问题
针对你遇到的.NET Core MVC页面中Chart.js提示框韩文乱码问题,尝试以下几个排查和解决步骤:
确保JS文件编码为UTF-8
你的PieChart.js文件如果不是以UTF-8编码保存,即使页面设置了UTF-8,读取文件中的韩文文本(比如labels里的전체 수량、완료량,以及回调里的개)也会出现乱码。打开JS文件,在编辑器中选择"另存为",确认编码选择UTF-8(部分编辑器需勾选"无BOM",.NET Core环境下两种编码都兼容)。配置.NET Core响应编码为UTF-8
在Program.cs(.NET 6+)中,确保MVC响应使用UTF-8编码,避免服务器输出时转码导致乱码:var builder = WebApplication.CreateBuilder(args); // 添加MVC服务并配置编码 builder.Services.AddControllersWithViews() .AddMvcOptions(options => { // 设置字符串输出格式器的编码为UTF-8 options.OutputFormatters.OfType<StringOutputFormatter>() .First().SupportedEncodings.Add(System.Text.Encoding.UTF8); });修正Tooltip字体配置
尝试将字体名称替换为英文标识'Malgun Gothic'(对应韩文맑은 고딕),部分环境下韩文字体名识别可能存在问题:tooltips: { titleFontFamily: "'Malgun Gothic', 'Arial', sans-serif", bodyFontFamily: "'Malgun Gothic', 'Arial', sans-serif", // 其他配置保持不变 }为Canvas元素设置全局字体
检查页面是否有全局CSS覆盖了Canvas的字体,给Chart对应的Canvas元素直接指定支持韩文的字体:#myPieChart { font-family: '맑은 고딕', 'Malgun Gothic', 'Arial', sans-serif; }替换回调中的硬编码韩文
如果JS文件编码调整后仍有问题,可将回调里的'개'替换为Unicode转义字符'\uac1c',直接避免编码解析问题:callbacks: { label: function (tooltipItem, data) { var label = data.labels[tooltipItem.index] || ''; var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; return label+': ' +value+ '\uac1c'; } }
内容的提问来源于stack exchange,提问作者BJH
相关产品推荐
相关产品推荐

