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

如何在用户输入文本时实现UTF-8到Windows-1251编码转换

通用实现UTF-8重音字符转Windows-1251对应基础字符的方案

你现在用的逐个字符替换方式太繁琐,每次碰到新的带重音字符都得手动加规则。这里有个通用方案,不用逐个配置就能完成转换。

实现逻辑

带重音的UTF-8字符(比如Ä、è)在Unicode体系里可以拆成基础字符+独立重音标记。用String.prototype.normalize('NFD')把字符分解后,再用正则过滤掉所有非间距重音标记,就能直接得到对应的基础字符,刚好符合你要的Windows-1251风格结果。

完整代码示例

$(function(){
    $('#txt').on('keyup paste change', function(){ 
        const input = $(this);
        let value = input.val();
        // 通用转换:分解字符并移除重音标记
        value = value.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
        input.val(value);
    })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p>测试粘贴:Äèíóàáó</p>
<input type="text" id="txt">

效果说明

这个方法能自动处理所有带重音的Unicode字符:

  • 输入Äèíóàáó会自动转为Aeioaao
  • 输入ç会转为c
  • 像é→e、ï→i这类其他带重音的字符也能自动转换,完全不用额外加规则

内容的提问来源于stack exchange,提问作者G-Force53

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:20:31