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

JavaScript中用fromCharCode输出土耳其字符乱码如何解决?

问题原因

你出现乱码的核心原因是使用了已废弃的event.keyCode + String.fromCharCode的组合来获取输入字符:

  • keyCode返回的是键盘按键的物理位置编码,不是实际输入的字符编码,本身就不支持非ASCII类的特殊字符(包括土耳其语的ÖÜĞİŞÇ等)
  • 该属性已经被Web标准废弃,兼容性和正确性都没有保障
修复方案

第一步:替换字符获取逻辑

直接用event.key获取用户实际输入的字符,不需要手动转码,原生就能识别土耳其特殊字符,同时补充逻辑优化插入规则:

window.addEventListener('keyup',function(event){
    // 过滤功能按键,避免把回车、Shift之类的功能键内容插入页面
    if(event.key.length > 1) return;
    var span = this.document.createElement('span');
    // 直接用event.key取实际输入的字符,替换原来的keyCode转码逻辑
    span.innerText= event.key;
    span.style.color='white';
    var harfDivleri = this.document.querySelectorAll('.harfDivleri');
    var i = kelimeDiv.children.length;
    while (0 < i) {
        i--;
        if(harfDivleri[i].innerHTML == ""){
            harfDivleri[i].appendChild(span);
            // 插入成功就跳出循环,避免重复遍历
            break;
        }
    }
});

第二步:确认页面编码配置

检查HTML头部是否声明了UTF-8编码,避免页面本身渲染编码异常:

<head>
  <meta charset="UTF-8">
  <!-- 其余头部配置 -->
</head>

内容的提问来源于stack exchange,提问作者Batuhan Fındık

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:54:02