我的印象是,JavaScript解釋器認爲它解釋的源代碼已經正常化了。什麼,正常化?它不能是文本編輯器,否則源的純文本表示會改變。有沒有一些「預處理器」,做歸一化?JavaScript Unicode正常化
11
A
回答
13
沒有,會自動使用上,甚至可以到JavaScript按照ECMAScript的5.所有字符保持不變,因爲原來的代碼點,有可能在非範式沒有Unicode規範化功能。
如嘗試:
<script type="text/javascript">
var a= 'café'; // caf\u00E9
var b= 'café'; // cafe\u0301
alert(a+' '+a.length); // café 4
alert(b+' '+b.length); // café 5
alert(a==b); // false
</script>
更新:ECMAScript 6 will introduce Unicode normalization for JavaScript strings.
+1
應該指出的是,JavaScript * PREDATES * UTF-16並且實際暴露了UCS-2。 (什麼內部使用可能會或可能不會是UTF-16,但它踢UCS-2出)。 –
11
13
的ECMAScript 6引入String.prototype.normalize()
這需要照顧的Unicode正常化的爲您服務。
unorm是這種方法的JavaScript填充,因此您現在已經可以使用String.prototype.normalize()
了,即使目前沒有一個引擎本身支持它。
有關何時以及如何在JavaScript中使用Unicode範式的更多信息,請參閱JavaScript has a Unicode problem – Accounting for lookalikes。
0
我已經更新@bobince的回答是:
var cafe4= 'caf\u00E9';
var cafe5= 'cafe\u0301';
console.log (
cafe4+' '+cafe4.length, // café 4
cafe5+' '+cafe5.length, // café 5
cafe4 === cafe5, // false
cafe4.normalize() === cafe5.normalize() // true
);
相關問題
- 1. 正常化Unicode
- 2. 正常化的unicode
- 3. 正常化unicode不能正常工作
- 4. Unicode字符不能正常工作
- 5. 如何從javascript在c#正常化JSON
- 6. 正常化3NF
- 7. 正常化3NF
- 8. FFT正常化
- 9. 正常化表
- 10. 表正常化
- 11. 正常化
- 12. L2正常化
- 13. 在正常化
- 14. SQL正常化
- 15. Unicode在iOS上無法正常工作
- 16. javascript正則表達式unicode幫助
- 17. 評級正常化
- 18. 正常化矢量?
- 19. AVAudioRecorder正常化量
- 20. 正常化澄清
- 21. 正常化整數
- 22. 功能「正常化」
- 23. pandas:正常化DataFrame
- 24. 正常化的node.js
- 25. 正常化問題
- 26. 正常化與否?
- 27. 正常化了解
- 28. Deedle正常化幀
- 29. 如何正常化JavaScript中的正數列表?
- 30. 我應該正常化還是解除正常化?
瀏覽器引擎,我相信就是處理它。這就是爲什麼你瀏覽器之間的差異,他們做什麼和不支持。 – Ryan