【问题标题】:How to deal with UTF-8 vs. Latin-1 encoding issues in PHP+MySQL如何处理 PHP+MySQL 中的 UTF-8 与 Latin-1 编码问题
【发布时间】:2017-03-23 17:05:03
【问题描述】:

我尝试将 GPS latitudelongitude 值与 degreeapostrophe 以 DMS 格式存储在 mysqlphp 中。

之前的解决方案是convert it into Decimal

是否有任何特定的datatype 使用如下符号将值存储在mysql 中:

12°53′17″N
80°13′52″E

问题是,它替换为12°53′17″ N80°13′52″ E

【问题讨论】:

  • 在那个确切的格式?它必须是像nvarchar() 这样的字符串类型。但最常见的纬度和经度存储为小数,正如你所说的那样。
  • 谢谢..但这对我没有帮助..
  • @m2j,它可能不会那样做,只是你还没有弄清楚文本编码/字符集是如何工作的。
  • @m2j “是否有任何特定的数据类型可以使用如下符号将值存储在 mysql 中”。我回答了你问的问题。如果没有帮助,请提出不同的问题。
  • 如果你格式化 lil bit 而不是 使用单引号 ' 那么你可以像这样存储 12°53'17''N

标签: php mysql


【解决方案1】:

通过将字符集设置为utf-UTF-8 Unicode 来创建表。如果您将表的字符集指定为 Unicode,那么它将接受原始纬度/经度值。 SQL参考代码:

ALTER TABLE `gps`
DEFAULT CHARACTER SET=utf8;

以下对我有用

CREATE TABLE `gps` (
  `lat` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

【讨论】:

  • 使用php有很多方法,将替换为单引号',或者通过插入反斜杠` for ′`和来使用字符串转义,记住这些不是单引号和双引号。使用 PHP,我们可以替换三个值之间的任何字符串,然后在操作时爆炸,然后也将它们转换为十进制。
猜你喜欢
  • 1970-01-01
  • 2017-09-28
  • 2010-09-21
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2018-02-16
相关资源
最近更新 更多