1

更多新信息

发现了另一个有趣的事情。在我的 find email 方法(为最终的 mysql 调用收集电子邮件地址)中,该方法如下所示:

protected function setAllByEmail($email) {
    $data = array( 'names' => array(), 'phones' => array(), 'emails' => array(), 'orders' => array(), 'requestIDs' => array() );
    $this->load->model('cookies/vwrequesthistory');
    $araCookies = $this->vwrequesthistory->getByEmail($email);
    if (count($araCookies) !=0) {
    // filter and run 2 more models against 2 more db's for email addys
}

如果我把我的任何新代码 return $data方法的第一行之后,我开始遇到奇怪的编码问题,但只要我不理会那个旧方法(它使用我试图摆脱的模型!)它工作得很好,没有奇怪的 ISO 编码!

最新更新最终发现一个小区别!

经过数小时的头部撞击,我开始倒退。关于如何收集这些数据的一点背景。最终结果(包含我需要在浏览器中显示的电子邮件 HTML)在 3 个初始查询后查询,这些查询为最终查询收集数据。我有 3 个使用 CI 调用这些初始查询的 php 方法load->database->方法。然后我调用最终查询。在我使用这些函数的旧方式中,每个人都接触到了该数据库的独立模型并获取了所需的内容,然后过滤了返回。在我的新方法中,每个函数都使用 CI 的 AR 直接调用 DB,然后过滤结果。两种方法都做同样的工作,只是方式不同。在我的新问题中,我发现如果我用我的旧获取电子邮件方法调用我的新 init get phone & get order# 方法,一切都很好。但是,一旦我尝试使用我的新 get EMAIL 方法,我就会得到奇怪的编码。然而,数据返回似乎与两者完全相同!

我已经运行了一些差异测试,包括分配新方法并立即返回错误数据,但仍然遇到同样的问题。我什至尝试分配新方法并使该方法完全空白,同样的问题!我尝试将新方法转移到旧方法中,同样的问题!它似乎只适用于作为草稿写得很糟糕的旧方法!

数据返回

     OLD
array(5) {
  ["names"]=>
  array(2) {
    [0]=>
    string(7) "Anon"
    [1]=>
    string(12) "Anon Anon"
  }
  ["phones"]=>
  array(1) {
    [0]=>
    string(10) "5555555555"
  }
  ["emails"]=>
  array(1) {
    [0]=>
    string(23) "Anon@gmail.com"
  }
  ["orders"]=>
  array(1) {
    [0]=>
    string(5) "987654"
  }
  ["requestIDs"]=>
  &array(0) {
  }
}

NEW
array(5) {
  ["names"]=>
  array(2) {
    [0]=>
    string(7) "Anon"
    [1]=>
    string(12) "Anon Anon"
  }
  ["phones"]=>
  array(1) {
    [0]=>
    string(10) "5555555555"
  }
  ["emails"]=>
  array(1) {
    [0]=>
    string(23) "Anon@gmail.com"
  }
  ["orders"]=>
  array(1) {
    [0]=>
    string(5) "987654"
  }
  ["requestIDs"]=>
  array(0) {
  }
}

最近更新

  • MySQL 数据库设置为 UTF-8
  • Codeigniter 全部设置为 UTF-8
  • CI 甚至设置为将 UTF-8 编码推送到标头
  • sql 调用现在是手写的,我已经使用“SETCHAR”和“mysql_set_charset”来尝试更改结果(仍然在 php 4 上。?这里)
  • 主视图在 <head> 中有 UTF-8
  • ajax 调用设置为仅使用 UTF-8
  • load的布局如下(暂时):

    masterView->usePHPinBodyToLoadEmailListView->UseAjaxToGetDataToPopulateView

仍然有同样的老问题

所以我浏览了几十个答案,用谷歌搜索,并尝试了我所知道的一切,包括标题更改、访问更改、文件编码更改;一切。在一天结束时,这是我的工具列表:

Komodo 编辑 / Codeigniter / MySQL / jQuery.Ajax 方法 / Google Chrome & FireFox

我的问题:空间被   和其他 ISO-8859-1 类型的怪异所取代

我所观察到的:(这里可能是问题的关键)

The Data is sent to jQuery.getJSON as `echo(json_encode($data));`
The HTML seemed to parse just fine to the web page in original config, 
    however the data layout was undesirable as it interfered with other pulls

The Data itself was originally arranged as follows:
    array(i) [
        0 => array(i) [
            'emailID' => 'string',
            'emailType' => 'string',
            'emailHTML' => 'string', <---- the html pulled!!!
        ],
        1 => [
            'emailID' => 'string',
            'emailType' => 'string',
            'emailHTML' => 'string', <---- the html pulled!!!
        ],
        'initData' => array(i) [ ... ]
    ]

The New Data Layout: (When the error mentioned began to occur)
    array(i) [
        'initID' => 'string',
        'initEmailAddy' => 'string',
        'initPhone' => 'string',
        'emailPull' => array(i) [
            0 => array(i) [
                'emailID' => 'string',
                'emailType' => 'string',
                'emailHTML' => 'string' <---- the html pulled!!!
            ]
            1 => array(i) [
                'emailID' => 'string',
                'emailType' => 'string',
                'emailHTML' => 'string' <---- the html pulled!!!
            ]
            2 => array(i) [ ... ]
        ]
    ]

在不更改我的数据布局的情况下,是否可以解决我的问题,如果可以,为什么?

更新!

改回原始数据结构,仍然有新问题!现在我真的迷路了。从字面上看,我将所有内容重置为0。新文件夹、新文件、在文本编辑器中复制和粘贴的代码一直在关注我的编码。一切都设置为 UTF-8,包括数据库,但我仍然得到相同的 ISO 结果!?HTML 包含了<meta>标签,CI 有字符集,修改了标题库以强制 UTF-8 到标题。好像我已经完成了所有可以想象的事情,两天前一切正常!老实说,我现在真的找不到问题。

在 HTML 页面上使用 PHP 提取数据时,它显示得很好。当通过控制器加载时,页面上有 PHP,工作得很好,当通过 AJAX 加载到母版页时,它突然中断。我已经在我的通话中设置了编码,仍然没有。还尝试通过 PHP 而不是 ajax 加载它,但仍然损坏。但是 2 天前,在相同的布局中(控制器-> 母版页-> 加载内容)它工作得很好。从那时起,我唯一改变的是我安排发送到getJSON呼叫的数据的方式。

4

0 回答 0