안녕하세요 여러분 모두 사용자 등록에 관한 신속한 프로젝트를 진행하고 있지만 사용자가 xcode에서 인쇄 한 내용을 입력하면 "ö, ü, ğ"와 같은 특수 문자에 문제가 있습니다. 좋아,하지만 json 문자열을 보낼 때이 형식처럼 변환 중> & oumlmerSwift를 사용하는 특수 문자
어떻게 해결할 수 있습니까? 이 특수 문자에 대한 인코딩을 어떻게 바꿀 수 있습니까?
코드 :
let request = NSMutableURLRequest(url: (URL(string: "xxxx.com/userregister.php"))!);
request.httpMethod = "POST";
let userstring = "My name is ömer";
print(userstring) //Everything okey printing : My name is Ömer
requst.httpBody=userstring.data(using: .utf8) //I think problem is here.Its saving to database like : My name is öMer
UserRegister.php
<?php
require("Conn.php");
require("MySQLDao.php");
$email = htmlentities($_POST["email"]);
$password = htmlentities($_POST["password"]);
$name = htmlentities($_POST["name"]);
$gsm = htmlentities($_POST["gsm"]);
$onayid = "0";
$surname = htmlentities($_POST["surname"]);
$qrcodeid = htmlentities($_POST["qrcodeid"]);
$returnValue = array();
if(empty($email) || empty($password))
{
$returnValue["status"] = "error";
$returnValue["message"] = "Missing required fieldd";
echo json_encode($returnValue);
return;
}
$dao = new MySQLDao();
$dao->openConnection();
$userDetails = $dao->getUserDetails($email);
if(!empty($userDetails))
{
$returnValue["status"] = "error";
$returnValue["message"] = "User already exists";
echo json_encode($returnValue);
return;
}
$secure_password = md5($password); // I do this, so that user password cannot be read even by me
$result = $dao->registerUser($email,$secure_password,$name,$gsm,$onayid,$surname,$qrcodeid);
if($result)
{
$returnValue["status"] = "Success";
$returnValue["message"] = "User is registered";
echo json_encode($returnValue);
return;
}
$dao->closeConnection();
?>
연결 코드 :
public function openConnection() {
$this->conn = new mysqli($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname);
mysql_query("SET character_set_results=utf8", $this->conn);
mb_language('uni');
mb_internal_encoding('UTF-8');
mysql_select_db($dbname, $this->conn);
mysql_query("set names 'utf8'",$this->conn);
if (mysqli_connect_errno())
echo new Exception("Could not establish connection with database");
}
고정 (파일 mysql을 연결 .PHP 변경해야 함) :
if (!$this->conn->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $this->conn->error);
exit();
} else {
printf("Current character set: %s\n", $this->conn->character_set_name());
}
을
나는 userregister.php 파일에 있다고 생각합니다. 따라서 코드를 공유하십시오. –
Okey, 나는 PHP를 전문가가 아니기 때문에 –
을 추가했지만, 내 생각에 htmlentities()가 그 원인 일 것입니다. http://php.net/manual/en/function.htmlentities.php : "적용 가능한 모든 문자를 HTML 엔티티로 변환" –