如何在pdftotext之后解码PHP中的减号

How to decode minus sign in PHP after pdftotext

我正在尝试将带有负数的字符串转换为整数。

我使用 pdftotext 将 pdf 文件转换为文本文件。执行正则表达式后,我有一些字符串需要在 PHP 中转换为整数,然后将它们插入到 MySQL 中。我尝试了 str_replace、preg_replace 和 rawurlencode,但没有用。

var_dump($mystring);             # output is `string(6) "‐200"`
var_dump(urlencode($mystring));  # output is `string(12) "%E2%80%90200"`
var_dump((int)$mystring);        # output is 'int(0)

$mystring = str_replace('-', '%E2%80%90', $mystring); # did not work
$mystring = preg_replace('/%E2%80%90/', '-', $mystring); # did not work
$mystring = rawurlencode($mystring); # did not work

您的 PDF 文本包含多字节字符,您必须对其进行转换(也可能在其他地方)。

<?php

$mystring = "‐200";

$unicode_hyphen = '‐'; // "E2 80 90" is the Unicode multi-byte hyphen character, that your PDFs seem to contain
$ascii_hyphen = '-';
$myint = intval(str_replace($unicode_hyphen , $ascii_hyhpen , $mystring));

var_dump($myint); // => int(-200)

参见:3v4l.org/sN5AS