我有一个 InDesign 脚本可以将页面转换为 JSON 格式。
然而,这带有智能的“ curl ”双引号而不是正常的双引号 ("")。当然,这会产生无效的 JSON 文件。
试图解决这个问题,因为我需要用 PHP 对这些文件进行一些其他操作,我尝试接受这个问题并在文件上传时解决它。
事实证明,该功能仅适用于(并非总是)Windows PC 中由 InDesign 生成的引号。如果您在 MAC 上运行脚本并上传文件,它根本无法工作,因为编码似乎不同。我已经尝试过其他解决方案,但是,它们根本不会产生任何结果。
这是脚本。
function quoteReplacer($file)
{
$string = file_get_contents($file);
$string = to_utf8($string);
$bits = array('\xe2\x80\x9c', '\xe2\x80\x9d', '\xe2\x80\x98', '\xe2\x80\x99','â','â');
$string = str_replace($bits,'"',$string);
file_put_contents($file,$string);
//file_put_contents($file,$string);
}
function to_utf8( $string ) {
return iconv( 'CP1250', 'UTF-8', $string);
}
最佳答案
这个脚本应该可以工作:
// First, replace UTF-8 characters.
$text = str_replace(
array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"),
array("'", "'", '"', '"', '-', '--', '...'),
$text);
// Next, replace their Windows-1252 equivalents.
$text = str_replace(
array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)),
array("'", "'", '"', '"', '-', '--', '...'),
$text);
替换所有可能阻塞 JSON 的奇怪字符。 礼遇:link .
或者,您可以通过按 Command + Shift + Option + 接下来的引号键,让他们在所有工作站上关闭它Enter 对于 MAC,在 pc 上相当于 ctrl + alt + shift + '或者您可以在 preferences 中找到它.
关于php - 恶魔般的 curl 引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12007613/
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
我正在使用Ruby1.8.7,试图生成一个带有\'字符的字符串,以便创建一个在MySQL中运行的脚本。结果应该是这样的:INSERTINTOtable(name,description)values('Joanad\'Arc','')但我不能在ruby字符串中只得到一个反斜杠。使用以下代码:string="INSERTINTOtable(name,description)values('Joanad\\'Arc','')"我得到了以下字符串:INSERTINTOtable(name,description)values('Joanad\\'Arc','')还有:string="IN
我试图在Ubuntu14.04中使用Curl安装RVM。我运行了以下命令:\curl-sSLhttps://get.rvm.io|bash-sstable出现如下错误:curl:(7)Failedtoconnecttoget.rvm.ioport80:Networkisunreachable非常感谢解决此问题的任何帮助。谢谢 最佳答案 在执行curl之前尝试这个:echoipv4>>~/.curlrc 关于ruby-在Ubuntu14.04中使用Curl安装RVM时出错,我们在Stack
我在ruby/rails中导入此CSV文件时遇到问题我得到的错误信息是这样的:Missingorstrayquoteinline1(CSV::MalformedCSVError)但我不确定发生了什么,因为我的CSV看起来非常好。以下是示例数据:"lesley_grades","lesley_id","last","first","active","site","cohort","section","sections_title","faculty","completed_term_cred","term","sec_start_date","sec_end_date","grade
ZedShaw的LearnRubytheHardWay第9章使用三重双引号:puts"""There'ssomethinggoingonhere.Withthethreedouble-quotes.We'llbeabletotypeasmuchaswelike.Even4linesifwewant,or5,or6."""我试着用单双引号写同样的东西,它似乎工作正常。我不明白三引号和单双引号之间的区别。我错过了什么吗? 最佳答案 我不知道他为什么在他的书中使用三重双引号。它们没什么特别的,一个双引号就可以了。这是ruby的一个鲜为
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
我有以下字符串:a="001;Barbara;122"我拆分成字符串数组:names=a.split(";")names=["001","Barbara","122"]我应该怎么做才能将每个元素另外用''引号括起来?结果应该是names=["'001'","'Barbara'","'122'"]我知道这听起来很奇怪,但我需要它在rubyonrails中进行数据库查询。出于某种原因,如果我的名字在“”引号中,我将无法访问数据库记录。我在数据库中确实有mk1==0006但rails不想以某种方式访问它。但是,它确实访问1222。sql="SELECTmk1,mk2,pk1,pk
我有一个运行良好的curl命令,但我需要在ruby脚本中自动执行它,curl命令:curl-uusrname:pwd-XPOST--data"del=false&val=100"http://localhost:1111/sample/path我写了下面的代码:uri=URI::HTTPS.build(:host=>"localhost",:port=>1111)uri.path=URI.escape("/sample/path")client=Net::HTTP.new("localhost","1111")req=Net::HTTP::Post.new(uri.request_
根据我在网上的所有阅读,backtick和system之间的区别是返回的内容。backtick返回STDOUT而system返回true或false。我被告知他们都使用subshell来执行操作。但是我注意到另一个不同之处。output=system('aaa')puts"outputis:#{output}"output=`aaa`puts"outputis:#{output}"上面代码的结果是$rubytest.rboutputis:lab.rb:4:in``':Nosuchfileordirectory-aaa(Errno::ENOENT)fromtest.rb:4:in`'
背景关于json.org网站,字符串定义为"char+",其中char+是一个或多个char。char是除"或\之外的任何unicode字符。控制字符的子集是允许的,只需将它们转义即可:“foo”“2”“\\”在Javascript中,如果要解析一个字符串,需要将其括起来:"\"foo\""或'"foo"',但不是"'foo'"在Rails3中,JSONgem默认运行C或纯Ruby代码。根据接受的答案,gem解析JSON文档而不是元素。文档是键、值(对象/哈希)或值(数组)形式的集合。问题字符串假设我们要解析字符串foo,我们需要将其括为"\"foo\""或'"foo"'JSON.pa