我正在开发一个 php 和 mysql 应用程序。
当我使用 internet explorer 时它工作正常我看到带有 acent 的信息.. p.e Visión
但是对于 chrome,它的工作方式不同。我看到类似 Visión
它将记录保存在我的 utf8_general_ci 数据库中。
从我的表单中获取数据的代码是:
objetivos = document.getElementById('objetivos').value;
//i get them in the same way (objetivos, mision, vision... and more)
$.ajax({
url: 'user/save.php',
type: 'GET',
data: "id_emprendedor="+id_emprendedor+"&descripcion="+descripcion+"&mision="+mision+"&vision="+vision+"&objetivos="+objetivos,
cache: false,
contentType: false,
processData: false,
beforeSend: function(){
document.getElementById('descripcionProyecto').innerHTML="<span class='before'>Guardando Información. Espere...</span>";
},
success: function(data){
document.getElementById('descripcionProyecto').innerHTML="<span class='success'>Guardado.</span>";
},
error: function(data){
document.getElementById('descripcionProyecto').innerHTML="<span class='error'>Ocurrió un error.</span>"+data.error;
}
});
}
这是save.php
require_once('../../clases/documento.php');
$id_emprendedor=$_GET['id_emprendedor'];
$descripcion=$_GET['descripcion'];
$mision=$_GET['mision'];
$vision=$_GET['vision'];
$objetivos=$_GET['objetivos'];
$ojbDocumento = new Documento;
$consulta= $ojbDocumento->guardaDescripcionProyecto($id_emprendedor,$descripcion,$mision,$vision,$objetivos);
我在 documento.php 中有这个位置
function guardaDescripcionProyecto($id_emprendedor,$descripcion,$mision,$vision,$objetivos)
{
if($this->conexion->conectar()==true){
$info=mysql_query("SELECT * from descripcion_proyecto where idacceso_acceso=$id_emprendedor");
if(mysql_num_rows($info)>0)
{
mysql_query("UPDATE descripcion_proyecto set descripcion_descripcion_proyecto='".$descripcion."', mision_descripcion_proyecto='".$mision."', vision_descripcion_proyecto='".$vision."', objetivos_descripcion_proyecto='".$objetivos."' WHERE idacceso_acceso=$id_emprendedor");
}else
{
mysql_query("INSERT INTO descripcion_proyecto (idacceso_acceso, descripcion_descripcion_proyecto, mision_descripcion_proyecto, vision_descripcion_proyecto, objetivos_descripcion_proyecto) VALUES ($id_emprendedor, '".$descripcion."','".$mision."','".$vision."','".$objetivos."' )");
}
return true;
}
}
这是我的连接位置:
class ManejadorDB{
var $conect;
var $basedatos;
var $servidor;
var $usuario;
var $clave;
function ManejadorDB(){
$this->servidor = "localhost";
$this->basedatos = "user_info";
$this->usuario = "root";
$this->clave = "3demary2015";
}
function conectar(){
if(!($con=@mysql_connect($this->servidor,$this->usuario,$this->clave))){
echo "Error al conectar a la base de datos";
exit();
}
if(!@mysql_select_db($this->basedatos,$con)){
echo "Error al seleccionar la base de datos";
exit();
}
// mysql_query("SET NAMES 'utf8'");
$this->conect=$con;
return true;
}
}
我尝试使用 mysql_query("SET NAMES 'utf8'"); $str = htmlentities($str);
还有更多代码行,但它们不起作用..
有人能帮帮我吗?
为什么它在 chrome 和 explorer 上的工作方式不同?
谢谢!
最佳答案
确保您正确设置了字符编码。执行此操作的两个选项:
在 HTML 中
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<meta charset="utf-8"/>
或者在 PHP 中
header("Content-Type: text/html;charset=utf-8");
还要确保您的托管环境没有覆盖您的设置;在 Chrome 中打开检查器,选择网络选项卡,然后加载您的页面。当您点击页面的请求时,请确保响应 header 没有列出任何其他编码,例如 ISO-8859-1。
关于php - chrome 和 explorer 的重音不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905995/
我正在尝试找到一种方法来规范化字符串以将其作为文件名传递。到目前为止我有这个:my_string.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.gsub(/[^a-z]/,'_')但第一个问题:-字符。我猜这个方法还有更多问题。我不控制名称,名称字符串可以有重音符、空格和特殊字符。我想删除所有这些,用相应的字母('é'=>'e')替换重音符号,并将其余的替换为'_'字符。名字是这样的:“Prélèvements-常规”“健康证”...我希望它们像一个没有空格/特殊字符的文件名:“prelevements_routin
我基本上来自Java背景并且努力理解Ruby中的模运算。(5%3)(-5%3)(5%-3)(-5%-3)Java中的上述操作产生,2个-22个-2但在Ruby中,相同的表达式会产生21个-1-2.Ruby在逻辑上有多擅长这个?模块操作在Ruby中是如何实现的?如果将同一个操作定义为一个web服务,两个服务如何匹配逻辑。 最佳答案 在Java中,模运算的结果与被除数的符号相同。在Ruby中,它与除数的符号相同。remainder()在Ruby中与被除数的符号相同。您可能还想引用modulooperation.
RSpec似乎按顺序匹配方法接收的消息。我不确定如何使以下代码工作:allow(a).toreceive(:f)expect(a).toreceive(:f).with(2)a.f(1)a.f(2)a.f(3)我问的原因是a.f的一些调用是由我的代码的上层控制的,所以我不能对这些方法调用添加期望。 最佳答案 RSpecspy是测试这种情况的一种方式。要监视一个方法,用allowstub,除了方法名称之外没有任何约束,调用该方法,然后expect确切的方法调用。例如:allow(a).toreceive(:f)a.f(2)a.f(1)
A/ctohttp://wiki.nginx.org/CoreModule#usermaster进程曾经以root用户运行,是否可以以不同的用户运行nginxmaster进程? 最佳答案 只需以非root身份运行init脚本(即/etc/init.d/nginxstart),就可以用不同的用户运行nginxmaster进程。如果这真的是你想要做的,你将需要确保日志和pid目录(通常是/var/log/nginx&/var/run/nginx.pid)对该用户是可写的,并且您所有的listen调用都是针对大于1024的端口(因为绑定(
我将Cucumber与Ruby结合使用。通过Selenium-Webdriver在Chrome中运行测试时,我想将下载位置更改为测试文件夹而不是用户下载文件夹。我当前的chrome驱动程序是这样设置的:Capybara.default_driver=:seleniumCapybara.register_driver:seleniumdo|app|Capybara::Selenium::Driver.new(app,:browser=>:chrome,desired_capabilities:{'chromeOptions'=>{'args'=>%w{window-size=1920,1
有没有办法在sinatra的beforedoblock中停止执行并返回不同的值?beforedo#codeishere#Iwouldliketo'return"Message"'#Iwouldlike"/home"tonotgetcalled.end//restofthecodeget'/home'doend 最佳答案 beforedohalt401,{'Content-Type'=>'text/plain'},'Message!'end如果你愿意,你可以只指定状态,这里有状态、标题和正文的例子
我想用sunspot重现以下原始solr查询q=exact_term_text:fooORterm_textv:foo*ORalternate_text:bar*但我无法通过标准的太阳黑子界面理解这是否可能以及如何实现,因为看起来:fulltext方法似乎不接受多个文本/搜索字段参数我不知道将什么参数作为第一个参数传递给fulltext,就好像我通过了"foo"或"bar"结果不匹配如果我传递一个空参数,我得到一个q=*:*范围过滤器(例如with(:term).starting_with('foo*')(顾名思义)作为过滤器查询应用,因此不参与评分。似乎可以手动编写字符串(或者可能使
我从ui中得到日期范围为-approved_between"=>"2013-03-17-2013-03-18"我需要拆分此approved_start_date="2013-03-17"和approved_end_date="2013-03-18"...我希望使用它在mysql中查询,因为mysql中的日期格式是created_at:2012-07-2810:35:01.我正在做的是:approved=approved_between.split("")approved_start_date=approved[0]approved_end_date=approved[2]很确定这不是处
response是一个散列,可能看起来像以下两种情况之一:response={'demo'=>'nil','test_01'=>'DemoData'}或response={'test'=>'DemoData','demo'=>'nil'}我想做这样的事情:ifresponse.has_key?'test_01'new_response.update(:nps_score=>response['test_01']elsenew_response.update(:nps_score=>response['test']end是否有更“Ruby”的方法来解决这个问题?也许使用||的东西运算符(
我正在编写一个Rails应用程序,它将监视某些特定数据库的数据质量。为了做到这一点,我需要能够对这些数据库执行直接SQL查询——这当然与用于驱动Rails应用程序模型的数据库不同。简而言之,这意味着我无法使用通过ActiveRecord基础连接的技巧。我需要连接的数据库在设计时是未知的(即:我不能将它们的详细信息放在database.yaml中)。相反,我有一个模型“database_details”,用户将使用它来输入应用程序将在运行时执行查询的数据库的详细信息。因此与这些数据库的连接实际上是动态的,细节仅在运行时解析。 最佳答案