我正在想办法 Hebrew
角色。在我的 connection.php
我有 $con->set_charset('utf8');
,因此字母出现在输入字段中,并正确记录在 MySql
数据库与此 connection.php
:
<?php
header("Access-Control-Allow-Origin: *");
header('Content-type: text/xhtml; charset=windows-1255');
$con = new mysqli('localhost:XXXX', 'user', 'password');
$con->set_charset('utf8');
if (!$con)
{
echo 'Not Connected To Server';
}
if (!mysqli_select_db ($con, 'mydb'))
{
echo 'Database Not Selected';
}
?>
但在一些地方,似乎,当我试图从列表中得到它,例如下面 home.ts
this.function(); http
请求时,显示如下:
function() {
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let options = new RequestOptions({ headers: headers });
let postParams = '&user=' + this.user;
this.http.post(this.phpPath + "select.php", (postParams), options)
.subscribe(data => {
var nmb = (data.text().split(".").length);
let x = data.text().split(".");
for (var i = 0; i < nmb; i++) {
var c = x[i];
this.list.push({ id: i, name: this.s + c }, );
}
}, error => {
console.log(error);
});
}
特别 select.php
使用 connection.php
:
<?php
require 'connection.php';
$user = mysqli_real_escape_string($con, $_POST["user"]);
$sql = "SELECT name FROM tab where user='".$user."'";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo $row["name"].'.';
}
} else {
echo "0 results";
}
mysqli_close($con);
?>
我试着补充 <meta charset="UTF-8">
至 home.html
,但是 index.html
已经包含它了。我也试着拯救 home.html
用记事本编码 UTF-8
,但没有任何帮助。 header(‘Content-type: text/xhtml; charset=windows-1255’);
已经在 connection.php
,结果我在 MySql
其他数据库记录 http
请求和 .php
后端。
例如,在应用程序中输入:
或在mysql表中:
但这并不影响按钮,以及其他几个地方在同一个应用程序界面上具有相同的功能 connection.php
,例如来自特定代码的:
如果没有 header(‘Content-type: text/xhtml; charset=windows-1255’);
看起来是这样的:
或在应用中:
但它不同于:
我不太明白,我做错了什么,必须改变 XHTML
,正在发送 UTF-8
而且很有前途 windows-1255
,但我试着用不同的方式返回,作为一个例子 json
从 select.php
带数组 $myArray[] = $row;
作为 let obj: MyObj = JSON.parse(data.text());
在 http
请求。
在结果控制台中:
\u05d0\u05d1\u05d2\u05d3
以及 object
是 undefined
我找到了这个答案,上面写着 ASCII
属性列表只允许 ASCII
字符,我有一个字符串的打印说明。也许这是一个原因,但我不知道,如何做到这一点
Ionic2 TypeScript
编辑1:
我编辑过 connection.php
与 $con->set_charset('utf8mb4');
而不是 utf8
,我也用过 $con->query("SET collation_connection = utf8mb4_unicode_520_ci");
:
$con = new mysqli('host', 'user', 'password');
$con->set_charset('utf8mb4');
$con->query("SET collation_connection = utf8mb4_unicode_520_ci");
``` `MySql` 服务器上的数据库行为 `utf8_general_mysql500_ci` ,它包含希伯来文字符记录并通过请求在其他应用程序位置检索。
我不确定,怎么设置 `<meta charset=UTF-8>` 为了
Ionic2 `html` 第页,它已经在 `<head>` 项目名称 `index.html` . 添加到 `home.html` 或任何其他页面 `<ion-header>` ,没有任何变化。
万一 `\u05d0\u05d1\u05d2\u05d3` 现在与 `echo json_encode($myArray, JSON_UNESCAPED_UNICODE);` 好像用英语返回正确的字符串 `json` 名字,但希伯来语还在 `Mojibake` . 无论如何,为了避免 `Unicode codepoints` ,在我的情况下,这足以得到回声作为 `$row["name"].'.';` 中没有数组和对象 `http` 请求。但我不知道该怎么办 `Mojibake` 编辑2:
显示创建表, `name` 列包含希伯来语:
CREATE TABLE band
(ID
int(20) NOT NULL AUTO_INCREMENT,name
varchar(300) COLLATE utf8_general_mysql500_ci NOT NULL,style
varchar(100) COLLATE utf8_general_mysql500_ci NOT NULL,member
text COLLATE utf8_general_mysql500_ci NOT NULL,zone
varchar(300) COLLATE utf8_general_mysql500_ci NOT NULL,region
varchar(100) COLLATE utf8_general_mysql500_ci NOT NULL,website
varchar(800) COLLATE utf8_general_mysql500_ci NOT NULL,image
varchar(2083) COLLATE utf8_general_mysql500_ci NOT NULL,user
varchar(700) COLLATE utf8_general_mysql500_ci NOT NULL,num
varchar(200) COLLATE utf8_general_mysql500_ci NOT NULL,registration
varchar(300) COLLATE utf8_general_mysql500_ci NOT NULL,
PRIMARY KEY (ID
)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_general_mysql500_ci
编辑3:
结果:
![](https://i.stack.imgur.com/mVbI7.png)
编辑4:
带文本的结果:
![](https://i.stack.imgur.com/qhOLB.png)
在文本中:
׳׳‘׳’׳“
׳׳•׳¨ ׳¢׳§׳™׳‘׳
׳׳׳•׳ ׳™ ׳™׳¦׳—׳§
从控制台复制:
![](https://i.stack.imgur.com/p80YW.png)
在数据库中:
![](https://i.stack.imgur.com/0WAve.png)
希伯来文:
אבגד
אור עקיבא
אלוני יצחק
同时与其他页面中的另一个请求相同的表和记录,控制台:
![](https://i.stack.imgur.com/M59Ar.png)
应用程序内:
![](https://i.stack.imgur.com/ASxMt.png)
1条答案
按热度按时间kx5bkwkv1#
我看到至少3个问题。
\u05d0\u05d1\u05d2\u05d3
--正在使用unicode代码点。别那么做。使用json_encode(str, JSON_UNESCAPED_UNICODE)
为了避免它。一张图片显示的是“莫吉巴克”;另一个显示“黑钻石”。两者都在这里讨论。
set_charset('utf8')
这只是需要保持一致的四件事中的一件。重新编辑3:
D790 D791 D792 D793
是utf8编码的正确十六进制אבגד
. 因此,数据存储正确。但数据显示不正确(mojibake)。现在,通过链接:要存储的字节需要utf-8编码。-这没关系。
插入和选择文本时的连接需要指定utf8或utf8mb4。-提供
SHOW VARIABLES LIKE 'char%'
列需要声明为字符集utf8(或utf8mb4)。--这没关系。html应该以
<meta charset=UTF-8>
. -- 如果要在网页上显示,请查看是在html中还是通过配置浏览器进行设置。但是。。。我不满意我们还处在同一个阶段。莫吉贝克应该表现出来
×בגד
. 你能复制粘贴输出吗?我对那张照片无能为力。