首页 > 解决方案 > javascript从CharCode转换为土耳其字符

问题描述

我将从键盘输入的值打印到屏幕上。但是土耳其语字符以扭曲的方式写入屏幕。如何正确打印土耳其语字符?

我的 JavaScript 代码:

window.addEventListener('keyup',function(event){

    var span = this.document.createElement('span');
    span.innerText= String.fromCharCode(event.keyCode);
    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);
        }
    }
    
});

屏幕输出:

在此处输入图像描述

我希望能够写出这样的字符:ÖÜĞİŞÇ

标签: javascriptcharacter-encodingcharturkishfromcharcode

解决方案


我建议使用该keypress事件,这将为您提供实际的字符代码,而不是单击的物理键,此处对此进行了更详细的说明

keydown 和 keyup 事件提供了指示按下哪个的代码,而 keypress 指示输入了哪个字符。例如,小写的“a”将被 keydown 和 keyup 报告为 65,但被 keypress 报告为 97。所有事件都将大写“A”报告为 65。

如果您使用 keypress 事件,您的代码应该可以按预期工作,请参见下面的简单演示,土耳其字符应该可以正确呈现。

window.addEventListener('keypress', function(event){
    document.getElementById('output').innerHTML += String.fromCharCode(event.keyCode);
})
<h3>Type here to see text:</h3><br>

<h3 id='output'></h3>


推荐阅读