似乎有两种类型的撇号。我想知道这个字符(')和这个(')之间的区别
第一个是从 Microsoft Word 复制的,我试图将其粘贴到文本区域中,然后插入到数据库中,但它不起作用。它打破了我的查询,所以我想用这个(')替换它,请我如何实现这一点。
我试过这个,但它似乎不起作用
function replace_microsolft_apostrophe($string){
$string = str_replace('’', "'", $string);
return $string;
}
Run Code Online (Sandbox Code Playgroud)
我的查询如下所示:
function create_note($page_id,$title,$note,$category,$author_id){
global $conn,$notes_table,$pages_table,$notification_table;
$sql = "INSERT INTO $notes_table(page_id,title,content,note_category) VALUES(?,?,?,?)";
$query = $conn->prepare($sql);
$query->bind_param("issi",$page_id,$title,htmlspecialchars($note),$category);
$query->execute();
}
Run Code Online (Sandbox Code Playgroud)
上面的查询没有这个字符就可以正常工作(')的
我也想知道为什么会这样?因为它与我按的键相同,但是当它转到 Microsoft Word 时,字符似乎发生了变化。我试图让它工作的原因是因为用户可能会在我的应用程序上从 Microsolf word 和过去复制已经键入的作品,我希望他们在那里编写、注释和发布它。
任何帮助都会很好。
哇!在网上冲浪后,我发现Pascal Martin 的回答非常有用……它还引用了一个包含完整答案的网站。 如何在 PHP 中替换 Microsoft 编码的引号
我能够用正常报价替换正确的引号
//convert single-byte apostrophes -encoded
function convert_smart_quotes($string)
{
$search = array(chr(145),
chr(146),
chr(147),
chr(148),
chr(151));
$replace = array("'",
"'",
'"',
'"',
'-');
return str_replace($search, $replace, $string);
}
Run Code Online (Sandbox Code Playgroud)
这个答案也更有用: Converting Microsoft Word special characters with PHP
| 归档时间: |
|
| 查看次数: |
8397 次 |
| 最近记录: |