php – 不同服务器上的不同字符集?
发布时间:2020-12-13 13:48:59 所属栏目:PHP教程 来源:网络整理
导读:我刚刚在本地测试了我的Web应用程序,一切正常,但上传到服务器应用程序后表现不同.我使用函数formatiraj_string_url来转换变音符号并获得干净的url …本地它工作正常但在服务器上这个函数不会以相同的方式转换它们. 几天前我在第三台服务器上进行了测试,并且
我刚刚在本地测试了我的Web应用程序,一切正常,但上传到服务器应用程序后表现不同.我使用函数formatiraj_string_url来转换变音符号并获得干净的url …本地它工作正常但在服务器上这个函数不会以相同的方式转换它们.
几天前我在第三台服务器上进行了测试,并且运行正常.现在我正在上传web以在第三台服务器上再次测试它,但我只是想知道这种行为的真正原因是什么? function formatiraj_string_url($string) { $string = strtolower($string); $znak[0] = ' '; $znak[1] = '?'; $znak[2] = '?'; $znak[3] = '?'; $znak[4] = '?'; $znak[5] = '?'; $znak[6] = '?'; $znak[7] = '?'; $znak[8] = '?'; $znak[9] = '?'; $znak[10] = '?'; $znak[11] = 'Š'; $znak[12] = 'Đ'; $znak[13] = 'Č'; $znak[14] = 'Ć'; $znak[15] = 'Ž'; $znak[16] = 'š'; $znak[17] = 'đ'; $znak[18] = 'č'; $znak[19] = 'ć'; $znak[20] = 'ž'; $znak[21] = 'Š'; // ? $znak[22] = 'š'; // ? $zamjena[0] = '-'; $zamjena[1] = 's'; $zamjena[2] = 's'; $zamjena[3] = 'd'; $zamjena[4] = 'd'; $zamjena[5] = 'c'; $zamjena[6] = 'c'; $zamjena[7] = 'c'; $zamjena[8] = 'c'; $zamjena[9] = 'z'; $zamjena[10] = 'z'; $zamjena[11] = 's'; $zamjena[12] = 'd'; $zamjena[13] = 'c'; $zamjena[14] = 'c'; $zamjena[15] = 'z'; $zamjena[16] = 's'; $zamjena[17] = 'd'; $zamjena[18] = 'c'; $zamjena[19] = 'c'; $zamjena[20] = 'z'; $zamjena[21] = 's'; $zamjena[22] = 's'; $string = str_replace($znak,$zamjena,$string); $new_string = preg_replace("/[^a-zA-Z0-9-s]/","",$string); return $new_string; } 编辑:在str_replace之前,此函数使用preg_replace.在服务器上,这是错误显示: Warning: preg_replace() [function.preg-replace]: Compilation failed: nothing to repeat at offset 0 in /home2/sinjcom/public_html/sinj.com.hr/administracija/include/funkcije.php on line 200 但在当地,我没有这个问题
你写的文件是哪个charset?
由于您已将要替换的字符直接替换为代码(如字符串),因此它们将编码在文件使用的任何字符集中.如果该字符集与您从浏览器获得的字符集不同,则您的功能将不起作用. 您需要记住的重点是始终跟踪字符串编码的字符集,并在必要时进行转换. 看看Kore Nordmanns FAQ about charsets in PHP有关charsets的更多指示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |