项目中遇到一个问题。用户通过文本编辑器输入的内容(包含不同字符集)。后端想要处理统一一下(utf8)。请问如何转换呢?
console.log('а' === 'a') // false
console.log('і' === 'i') // false
大家可以把上面的字符copy到电脑上试一下。 试了一下 通过 iconv-lite 库进行转换,输出的还是原字符
const iconv = require('iconv-lite')
let text = 'а'
console.log('text', text)
text = iconv.decode(Buffer.from(text), 'utf8')
console.log(text === 'a')
还有就是一段文本可能包含不同字符集。 是我的使用方式有问题吗?
谢谢大家,目前通过这个方式进行转换了,比较低级
function Cyrillic2latin (string) {
var cyrillic = 'А_В_С_Е_Н_І_Ј_К_М_О_Р_Ѕ_Т_Х_Ү_а_с_е_һ_і_ј_к_м_о_р_ѕ_х_у'.split('_')
var latin = 'A_B_C_E_H_I_J_K_M_O_P_S_T_X_Y_a_c_e_h_i_j_k_m_o_p_s_x_y'.split('_')
return string.split('').map(function (char) {
var index = cyrillic.indexOf(char)
if (!~index) return char
return latin[index]
}).join('')
}