问题标签 [smart-quotes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何在字符串中转换 Word 智能引号和破折号?
我有一个带有文本区域的表格。用户输入存储在数据库中的文本块。
有时,用户会从 Word 中粘贴包含智能引号或短划线的文本。这些字符在数据库中显示为: –, ’, “ ,â€</p>
我应该在输入字符串上调用什么函数来将智能引号转换为常规引号并将 emdashes 转换为常规破折号?
我在 PHP 中工作。
更新:感谢迄今为止所有出色的回应。Joel 网站上关于编码的页面信息量很大: http: //www.joelonsoftware.com/articles/Unicode.html
关于我的环境的一些注意事项:
MySQL 数据库使用 UTF-8 编码。同样,显示内容的 HTML 页面通过显式设置元内容类型使用 UTF-8(更新:)。
在这些页面上,智能引号和破折号显示为带有问号的菱形。
解决方案:
再次感谢您的回复。解决方案是双重的:
- 确保数据库和 HTML 文件已明确设置为使用 UTF-8 编码。
- 使用
htmlspecialchars()
而不是htmlentities()
.
ms-word - 当从 Word 复制/粘贴 'hello' 到 textarea 时,保存后变为 018hello 019
我有 Word 'hello',当我粘贴它时,我得到 018hello 019,所以撇号变成了这些奇怪的字符。
Web 应用程序的类型应该无关紧要,因为行为因我使用的工作站而异。
我用记事本、Excel 和写字板检查过,没有出现这个问题,仅适用于 Word。
它应该是 Word/IE 设置。
你知道是哪一个吗?
谢谢
c# - C#如何用直引号替换微软的Smart Quotes?
我在下面的帖子询问了弯引号是什么以及为什么我的应用程序无法使用它们,我现在的问题是当我的程序遇到它们时如何替换它们,我如何在 C# 中做到这一点?它们是特殊字符吗?
谢谢
sql - SQL替换智能引号
有谁知道用他们的 ASCII 表亲替换 MS Office 智能引号的 SQL 命令?我正在使用 oracle 数据库,字段类型为 varchar2
mysql - iconv 给出带有智能引号的“非法字符”——如何摆脱它们?
我有一个 MySQL 表,其中 120,000 行以 UTF-8 格式存储。有一个字段,产品名称,其中包含带有许多重音符号的文本。在将第二个字段转换为对 url 友好的表单 (ASCII) 后,我需要用相同的名称填充第二个字段。
由于 PHP 不直接处理 UTF-8,我正在使用:
将名称转换为 ISO-8859-1,然后是一个庞大的 strstr 语句,将任何重音字符替换为其非重音等效字符(例如,à 变为 a)。
但是,原始文本名称是用智能引号输入的,并且 iconv 遇到一个就会窒息——我得到:
为了在使用 iconv 之前摆脱智能引号,我尝试使用三个语句,例如:
(’ 是 UTF-8 智能单引号的原始值)
因为文本文件太长,这些 str_replace 会导致脚本每次都超时。
在运行 iconv 之前,从 UTF-8 字符串中去除智能引号(或任何无效字符)的最快方法是什么?
或者,是否有更简单的解决方案来解决整个问题?将 UTF-8 中具有多种重音符号的名称转换为 ASCII 中没有重音符号且拼写正确的名称的最快方法是什么?
css - 没有“破坏”复制和粘贴的智能引号?
我真的不喜欢“智能引号”,原因很简单——当我复制包含它们的文本时,它不再具有""
键入的原始文本,而是以 Unicode 符号结束。
智能引号是视觉上的改进,所以不应该真正“融入”文本,所以..我想知道,是否可以使用 CSS 显示智能引号?
基本上,文本将显示为..
..但是查看源代码或复制和粘贴会显示:
php - MySQL 因卷曲(智能)引号而窒息
我正在将一些数据从表单中插入数据库。我addslashes
用来转义文本(也尝试mysql_real_escape_string
过相同的结果)。
常规引号会被转义,但其他一些引号不会。例如,字符串:
荷马的血成为萌新啤酒的秘密成分。
转换为:
荷马的血成为萌新啤酒的秘密成分。
我不认为大引号不转义会很重要,但只有这个文本被插入到数据库中:
荷马的血成为萌的秘密成分
所以 PHP 认为花引号很好,但 MySQL 正在丢失字符串。MySQL 没有给出任何错误。
c# - 替换 asp.net webform 中的 MSWord 智能引号
我有一个问题,用户在 MS Word 中编写一些大块文本,然后将其粘贴到在线表单中。这些以颠倒的形式进入数据库?我有哪些选择可以用标准报价替换这些?
javascript - 将“直引号”转换为“弯引号”
我有一个使用基于 Javascript 的规则引擎的应用程序。我需要一种将常规直引号转换为弯(或智能)引号的方法。string.replace
只做一个for很容易["]
,只是这只会插入一个大写的花引号。
我能想到的最好的方法是用左花引号替换第一次出现的引号,然后用左花引号替换所有其他引号,其余的用右花引号替换。
有没有办法使用 Javascript 来实现这一点?