AJAX 请求中 Microsoft Word 字符的编码问题
我正在编写一个函数,将 MS Word 样式的文本转换为 Adobe InDesign 格式的文本(它使用一种 XML 来指示样式)。文本被粘贴到 TinyMCE 富文本编辑器中,然后将 HTML 格式的代码发送到 php 函数。
我尝试过这个函数来清理代码,一旦它到达我的转换代码:
$text = iconv("windows-1250", "UTF-8", $html);
当我使用任何“特殊”类型的字符时,事情就会出错。 £ 符号、é(或任何其他重音符号)和各种“卷曲”撇号/引号似乎会破坏事物。例如,如果我尝试转换 £
符号,代码会返回 \u0141
,但当函数执行时,屏幕上会显示 Ł
符号返回。
有人知道我能做些什么来防止Word的奇怪字符破坏我正在做的一切吗?
I'm writing a function to convert MS Word-styled text into Adobe InDesign-formatted text (it uses a kind of XML to indicate styling). The text is pasted into a TinyMCE rich text editor, which then sends the HTML-formatted code to a php function.
I've tried this function to clean up the code once it reaches my conversion code:
$text = iconv("windows-1250", "UTF-8", $html);
When I use any 'special' kind of characters, things go wrong. £ signs, é (or any other accents), and a variety of 'curly' apostrophes/quote marks seem to break things. For example, if I try to convert a £
sign, the code returns \u0141
, but I get the Ł
symbol displayed onscreen when the function returns.
Does anybody know what I can do to prevent Word's weird characters breaking everything I'm doing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我似乎已经解决了这个问题。我使用
escape()
传递值,但将其替换为encodeURIComponent()
(并删除了我的中的iconv()
调用) php 代码),这似乎已经修复了它。I seem to have fixed this. I was using
escape()
to pass the values, but replaced this withencodeURIComponent()
instead (and removed theiconv()
call in my php code), which seems to have fixed it.