我有这个数组:
[ID] => 荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72
[Email] =>
[InBuildingAddress] =>
[Price] =>
[Street] =>
[Title] => 荒川之下流三十景 その二十三「赤羽之景」
[Website] =>
[Zip] =>
[Rating Star] => 0
[Rating Weight] => 0
[Latitude] => 35.7865334803033
[Longitude] => 139.716800710514
[Building] =>
[City] => Unknown_Japan
[OpeningHour] =>
[TimeStamp] => 0000-00-00 00:00:00
[CountViews] => 0
然后我做这样的事情:
$output[$info['ID']] = $info; //mess up here
$tes = $info['ID']['Title'];
好吧,猜猜看:它搞砸了。它可能会搞砸的原因是因为 $info['ID'] 不是 ascii。但是我将它用作 $output[$info['ID']] 的键。
基本上即使 PHP 中数组的内容可以是日语。这是真的?
怎么了?我得到的错误是:
调试警告:/sdfdsfdf/api/test2.php 第 36 行 - 找不到元素 ????????-???????????__35.79_139.72 在变量调试警告:/sdfdsfdf/ api/test2.php 第 36 行 - main() [function.main]:依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们选择了 'Asia/Krasnoyarsk' 作为 '7.0/no DST'
这么多问号。
为什么会这样?PHP 内部到底发生了什么?我在哪里可以学到更多这样的东西?最重要的是,处理这种情况的最佳方法是什么?我应该告诉 PHP 在内部始终使用 UTF-8 吗?PHP 数组本身可以没有非 ASCII 值吗?