Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将拉丁文1转换为UTF8_Php_Mysql - Fatal编程技术网

Php 将拉丁文1转换为UTF8

Php 将拉丁文1转换为UTF8,php,mysql,Php,Mysql,我有一个DB-和表文章 我想将标题和内容字段转换为utf8 现在-所有数据如下所示:×ו××××××××××××××××××-×××××××ית! 我想让它变成普通的希伯来文角色 谢谢试试看 ALTER TABLE `tablename` CHANGE `field_name` `field_name` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL 如果需要转换整个数据库,可以将其作为databaseback.s

我有一个DB-和表文章

我想将标题和内容字段转换为utf8 现在-所有数据如下所示:
×ו××××××××××××××××××-×××××××ית!
我想让它变成普通的希伯来文角色

谢谢

试试看

ALTER TABLE `tablename` CHANGE `field_name` `field_name` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL 

如果需要转换整个数据库,可以将其作为
databaseback.sql
文件备份,然后形成命令行
iconv-f latain-t utf-8databaseback.utf8.sql

您可以使用
在没有命令行访问权限的情况下转换php中的每一行

最后,别忘了转换phpmyadmin中每个字段的排序规则,这样就可以轻松地将utf8解析回来

更新

如果未识别
iconv
,则表示未安装
iconv

更简单的解决方案是: 将MySQL数据迁移到Unicode


您可以从此数据库创建mysqldump。然后下载Notepad++之类的东西,打开转储文件,将其转换为UTF8,然后通过该文件替换所有utf-8编码,包括first SET NAMES操作符


如果通过phpMyAdmin(使用默认设置)转储到文件,请使用输出文件编码ISO-8859-1,而不是默认情况下看到的UTF-8。

您可以编写一个执行转换的小php脚本。看,我就是这样做的

记住使用严格模式

在伪代码中是这样的:

str = getDataAsString()
if(!isUTF8(str)) {
  str = convert2UTF8(str)
}
saveStr2DB()

以下MySQL函数将在双重编码后返回正确的utf8字符串:

CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)
它可以与UPDATE语句一起使用以更正字段:

UPDATE tablename SET field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);

使用
phpmyadmin
,转到该表,更改属性…已对其进行简化,pma上的数据本身看起来是相同的。如果没有更多信息,很难说该怎么办,但需要注意的是,在MySQL中更改表的字符编码不会将数据转换为新的编码。数据库中存储的实际字节保持不变。Rob是对的。。。首先更改,然后插入新数据并查看结果即使在插入新数据时它确实起作用-我需要转换旧数据..我已经在CMD上尝试过了-得到:'iconv'未被识别为可操作程序或批处理文件。请参阅-您必须将最后一个参数设置为“true”,然后,它将找出正确的编码:)我应该放在中间的ARG中?使用这个:MbDebug编码($STR,UTF-8',TRUE);我得到UTF-8,我该怎么办?如果它是utf-8,那么如何转换它?如果数据库设置为utf8,那么输出html页面的内容是什么,您是使用phpmyadmin还是在自己的脚本中查看它?检查您的浏览器和网页是否也设置为utf-8这会截断特殊字符上的单词:(