我们正在做一个AJAX调用来从数据库中检索。由于我们的客户可能使用不同的语言,因此我们将所有内容编码为Unicode以存储在数据库中(不必担心排序问题等)。现在,当我们获取要显示在输入文本字段中的内容时,它将显示Unicode代码。检查HTML 4 documentation for input和值是一个CDATA它告诉我这些unicode应显示为他们的字符。
从附加的屏幕截图可以看出情况并非如此,我想知道是否有办法“强制”这种行为。在输入字段强制显示来自Unicode的文本
回答
由于我们的客户端可以使用不同的语言,我们都编码成ASCII到数据库存储(保存担心排序规则和这样)。
恕我直言,将html实体存储到数据库中是一种非常糟糕的做法。我强烈建议你在任何地方都使用UTF-8编码。这可以让你免于担心排序等问题。
我的歉意,那不是ASCII码,这是unicode。 – Purefan 2010-09-22 19:50:03
您正在传递一个完整的&#...;
数字字符引用的JavaScript字符串。 JavaScript字符串不是HTML编码的,因此您的代码确实会生成包含&符号,哈希等的JS字符串。
当您将其设置为输入的DOM值(val()
)时,自然那些&号将仍然存在。 DOM属性是纯字符串,而不是标记。如果您打算将其标记用于与innerHTML
/html()
一起使用,则只需在JavaScript中对HTML进行编码。
因此,PHP不应该HTML编码不会插入到HTML中的内容。使用json_encode()
创建JavaScript字符串文字:
$('#js_global_status_input').val(<?php echo json_encode($status_value); ?>);
非常感谢您的时间和建议,但是,由于它没有对我的工作进行到底,这里是Ajax响应:$( “#js_status_input”)VAL( “מ ה ב ר א ש ש ל ך?”)。那是使用json_encode – Purefan 2010-09-28 11:47:02
你还在传递&符号和哈希值。不要那样做,除了标记之外,它们没有任何意义。 'val()'不是标记,你需要传递一个正常的,未编码的字符串:'val('מהבראששלך')',或者,如果在JSON字符串中转义为ASCII码安全('json_encode'将会执行默认),'val(“\ u05de \ u05d4 \ u05d1 \ u05e8 \ u05d0 \ u05e9 \ u05e9 \ u05dc \ u05da”)'。您需要让您的服务器端脚本停止对正在分发的值进行HTML编码。 – bobince 2010-09-28 12:29:11
如果你实际上在你的数据库内容中有'מ ה ...',那么你遇到了很大的问题。虽然你可以通过在PHP中调用'html_entity_decode($ s,ENT_QUOTES,'utf8')'来解决这个问题,但是在你的数据库中使用HTML编码的文本肯定表明你的应用程序正在做一些非常错误的事情,编码所有输入,而不是在输出阶段进行编码。数据库内容应始终以原始文本形式保存。 – bobince 2010-09-28 12:32:13
- 1. 如何显示来自文本字段的用户输入
- 2. 强制jQuery UI Datepicker在下面的输入字段中显示
- 3. 点击显示文本字段(输入)
- 4. asp.net MVC 4显示Unicode文本字段
- 5. 显示隐藏的输入字段与自定义文本
- 6. 强制用户在输入文本字段中输入英文键盘
- 7. 如何在文本字段中显示输入的数字?
- 8. 在文本字段中显示Unicode字符
- 9. PHP - 在div中显示来自mysql文本字段的html
- 10. 如何在php中显示来自mySQL表的Unicode文本?
- 11. rails-显示来自文本字段的特殊字符数
- 12. 显示来自控制器的文本
- 13. 显示输入字段
- 14. Unity3D输入字段显示“????????”
- 15. 不显示输入字段
- 16. 在文本字段中输入时显示预制建议的列表
- 17. 显示自定义输入字段上的文件的名称
- 18. 在警报中显示输入文本字段 - jquery ui
- 19. 在空输入字段中显示占位符文本
- 20. 在文本字段中输入验证和显示信息
- 21. 输入文本字段不显示在浏览器上 - Django
- 22. javascript强制日期到输入字段
- 23. 显示文本的Javascript数字输入
- 24. Javascript输入来自iFrame中文本字段链接的数据
- 25. 来自Mysql的数据,输入到各种文本字段
- 26. 强制光标在文本字段上
- 27. 如何显示来自用户输入的文本? Swift 3.0
- 28. 如何让activiti显示textarea字段instaded的文本输入?
- 29. 获取搜索结果来显示ul输入的文本字段
- 30. 在输入框中输入显示文本到控制台
强制使用有效字符的最佳方式是使用适当的编码 - UTF8。这是2010年,你知道的。 – naivists 2010-09-22 16:48:43
我的歉意,那不是ASCII码,这是unicode。是的,我知道这是2010年,我们生活在地球,谢谢。 – Purefan 2010-09-22 19:50:31
你把“Unicode”和“HTML实体”搞混了。 – BalusC 2010-09-24 00:31:21