Как печатать - в php - PullRequest
       64

Как печатать - в php

1 голос
/ 19 ноября 2010

В базе данных есть имя, содержащее - (от Niño)

, когда я получаю его из базы данных, а затем выводю его, на выходе будет Ni�o.

Как я могуисправить это?

Ответы [ 3 ]

3 голосов
/ 19 октября 2011

вы проверили конфигурацию базы данных? Сначала проверьте ее в вашей базе данных. у меня та же проблема раньше, когда я использовал cakephp .. вот как это выглядит в cakephp

//cakephp database configuration

<?php
/**
 1. This is core configuration file.
 2.  3. Use it to configure core behaviour ofCake.
 4.  5. PHP versions 4 and 5
 6.  7. CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 8. Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
 9.  10. Licensed under The MIT License
 11. Redistributions of files must retain the above copyright notice.
 12.  13. @copyright     Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
 14. @link          http://cakephp.org CakePHP(tm) Project
 15. @package       cake
 16. @subpackage    cake.app.config
 17. @since         CakePHP(tm) v 0.2.9
 18. @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
/**
 19. In this file you set up your database connection details.
 20.  21. @package       cake
 22. @subpackage    cake.config
 */
/**
 23. Database configuration class.
 24. You can specify multiple configurations for production, development and testing.
 25.  26. driver => The name of a supported driver; valid options are as follows:
 27.    mysql       - MySQL 4 & 5,
 28.    mysqli      - MySQL 4 & 5 Improved Interface (PHP5 only),
 29.    sqlite      - SQLite (PHP5 only),
 30.    postgres    - PostgreSQL 7 and higher,
 31.    mssql       - Microsoft SQL Server 2000 and higher,
 32.    db2         - IBM DB2, Cloudscape, and Apache Derby (http://php.net/ibm-db2)
 33.    oracle      - Oracle 8 and higher
 34.    firebird    - Firebird/Interbase
 35.    sybase      - Sybase ASE
 36.    adodb-[drivername]  - ADOdb interface wrapper (see below),
 37.    odbc        - ODBC DBO driver
 38.  39. You can add custom database drivers (or override existing drivers) by adding the
 40. appropriate file to app/models/datasources/dbo.  Drivers should be named 'dbo_x.php',
 41. where 'x' is the name of the database.
 42.  43. persistent => true / false
 44. Determines whether or not the database should use a persistent connection
 45.  46. connect =>
 47. ADOdb set the connect to one of these
 48. (http://phplens.com/adodb/supported.databases.html) and
 49. append it '|p' for persistent connection. (mssql|p for example, or just mssql for not persistent)
 50. For all other databases, this setting is deprecated.
 51.  52. host =>
 53. the host you connect to the database.  To add a socket or port number, use 'port' => #
 54.  55. prefix =>
 56. Uses the given prefix for all the tables in this database.  This setting can be overridden
 57. on a per-table basis with the Model::$tablePrefix property.
 58.  59. schema =>
 60. For Postgres and DB2, specifies which schema you would like to use the tables in. Postgres defaults to
 61. 'public', DB2 defaults to empty.
 62.  63. encoding =>
 64. For MySQL, MySQLi, Postgres and DB2, specifies the character encoding to use when connecting to the
 65. database.  Uses database default.
 66.  */
class DATABASE_CONFIG {

var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'web_user',
    'prefix' => '',
    //'encoding' => 'utf8',
);

var $test = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'user',
    'password' => 'password',
    'database' => 'test_database_name',
    'prefix' => '',
    //'encoding' => 'utf8',
);
}

Вы должны раскомментировать строку с кодировкой => 'utf8'

3 голосов
/ 19 ноября 2010

Вы должны будете убедиться, что ваши данные и документ, который вы выводите (через PHP), имеют одинаковую кодировку.

Например, если ваши данные в базе данных имеют формат UTF8 (и не повреждены). Обязательно установите UTF-8 в заголовок вашего документа. Как это:

header('Content-Type: text/html; charset=utf-8');

(Обязательно установите заголовки, прежде чем выводить какой-либо контент.)

Иногда вам нужно сообщить вашей БД, что вы используете определенный набор символов:

$db->query("SET NAMES 'utf8'");
$db->query("SET CHARACTER SET utf8");

В этой статье описывается, как обеспечить, чтобы PHP и БД говорили на одном и том же «языке» от начала до конца. Это означает, что вы используете методы mb * вместо обычных.

Я бы предложил использовать библиотеку для такого рода вещей - например, Flourishlib , которая обрабатывает все беспорядок для вас - БД, заголовки и т.д.

И, наконец, посмотрите эту общую статью UTF 8 , чтобы узнать о проблемах.

0 голосов
/ 10 мая 2013

Попробуйте функцию замены строки (str_replace (найти, заменить, строка)) Попробуйте посетить этот сайт для получения дополнительной информации. http://www.w3schools.com/php/func_string_str_replace.asp Удачи! Надеюсь, это поможет вам! : -)

...