获取浏览器';将突出显示的文本转换为UTF8编码的javascript字符串

获取浏览器';将突出显示的文本转换为UTF8编码的javascript字符串,javascript,dom,web-applications,unicode,Javascript,Dom,Web Applications,Unicode,我是javascript新手,对其unicode处理没有很好的掌握。如果我理解正确的话,这有点像C/C++中的字符串包含一个没有任何编码信息的二进制序列 当我使用类似于var str=window.getSelection().toString()的方法来获取高亮显示的文本时,生成的字符串是否与网页具有相同的编码?如果是这样,找出编码并将其转换为unicode编码(例如UTF8)的最佳方法是什么?Javascript中的字符串与C或PHP中的“字符串”不同,后者实际上是字节数组,具有编码语义。J

我是javascript新手,对其unicode处理没有很好的掌握。如果我理解正确的话,这有点像C/C++中的字符串包含一个没有任何编码信息的二进制序列


当我使用类似于
var str=window.getSelection().toString()
的方法来获取高亮显示的文本时,生成的字符串是否与网页具有相同的编码?如果是这样,找出编码并将其转换为unicode编码(例如UTF8)的最佳方法是什么?

Javascript中的字符串与C或PHP中的“字符串”不同,后者实际上是字节数组,具有编码语义。Javascript中的字符串与此完全不同,类似于Java/C#或Python的unicode类型中的字符串

它们是抽象字符的字符串,至少如果您不尝试使用非BMP字符。实际上,你不必担心这一点,我只是为了完整起见才提到它


如上所述,
var str=window.getSelection().toString()
并没有任何编码语义,它只是一个选定的字符字符串。您没有在问题中说明任何实际问题,但如果您想知道“特殊”字符是否在Javascript中正常工作,那么,它们确实正常工作。

Javascript中使用的编码是UCS-2或UTF-16。这在很大程度上取决于您希望如何使用它;如果您通过AJAX发送值,它将转换为页面的字符集(afaik)。谢谢!我想我错了,我的问题没有多大意义。我最初的问题不是在str中发送信息,而是在正则表达式和字符串函数中使用它。我错误地认为上面str变量的编码将与页面编码相同,但是如果javascript在str变量中将所选文本交给我之前自动将其转换为UCS-2/UTF-16,那么我就可以继续了。“你不必担心,我只是为了完整性才提一下。”呃,什么??你当然要担心。@R.MartinhoFernandes为什么?顺便说一句,我对理论上的解释不感兴趣-只对实践感兴趣。因为当香蕉@R.MartinhoFernandes时,我很可能会生气,即使有人很恼火地查找无用的非BMP字符,但这些字符只对那些知道如何查找它们的人正确显示。你完全错了。javascript字符串只是UCS-2或UTF-16,它并不比C或PHP字符串更抽象。