Điện thoại: 0944210999

Hướng dẫn thay đổi collation hàng loạt cho bảng dữ liệu MySQL

Việc thay đổi collation cho một table trong MySQL có thể thực hiện thủ công bằng cách vào PHPMyAdmin bấm vào mục Structure của bảng dữ liệu đó, tiếp theo chuyển qua tab Operation và đổi Collation ở khung table option.

Tuy nhiên cách làm này khá vất vả nếu bạn có đến hàng trăm hàng ngàn table cần đổi thì có lẽ mất cả ngày. Đoạn code dưới đây mình sưu tầm được và đã test. Sẽ giúp cho bạn thay đổi toàn bộ collation của dữ liệu sang bảng mã mình muốn. Chằng hạn từ latin1_swedish_ci sang utf8-general-ci. Giải quyết vấn đề lỗi font khi cập nhật nội dung mới.

1. Lưu đoạn code sau thành file php

<?php

$db = mysql_connect('localhost','mysql_user','mysql_password');

if(!$db) echo "Cannot connect to the database – incorrect details";

mysql_select_db('mysql_database'); $result=mysql_query('show tables');

while($tables = mysql_fetch_array($result)) {

foreach ($tables as $key => $value) {

mysql_query("ALTER TABLE $value COLLATE utf8_general_ci");

}}

echo "The collation of your database has been successfully changed!";

?>

2. Đổi thông tin cho phù hợp với host và database của bạn:

+ localhost: Máy chủ của bạn

+ mysql_user: Tên user để đăng nhập MySQL

+ mysql_password: Mật khẩu đăng nhập MySQL

+ mysql_database: Tên của cơ sở dữ liệu cần đổi collation

+ utf8_general_ci: bảng mã cần chuyển.

3. Up file này lên host và chạy nó:

Chẳng hạn bạn đặt tên file là change.php và up lên thư mục gốc thì chỉ cần chạy: tenmien.com/change.php. Khi có thông báo: The collation of your database has been successfully changed! là được. Còn Cannot connect to the database – incorrect details thì kiểm tra lại thông tin bạn cung cấp trong file đã chính xác chưa nhé.
4. Xóa file này để hạn chế nguy cơ về bảo mật:
File này chứa thông tin mật khẩu và user kết nối đến database của bạn. Do đó sau khi chạy xong thì nên xóa nó đi, tránh nguy cơ dữ liệu bị rơi vào tay kẻ xấu
Chúc các bạn thành công
_______________________

Convert từ Latin1 sang Uft8 trong PhpMyadmin

Khi cài website WordPress hay các mã nguồn khác, nhiều Hosting server chẳng hiểu sao để mặc định database Font là Latin 1 chữ không phải UFT 8 Unicode khiến website của bạn bị lỗi phông chữ nặng. Sau khi cài xong, ta phải vào PHP Myadmin để change lại Latin1 thành Ut8-General-ci rất bất tiện và mất công vì cữ phải dò từng bảng 1, từng row 1 mà change. Sau đây là cách sử dụng 1 chuỗi SQL lệnh để change hàng loạt từ latin 1 sang UTF8 chỉ bằng 1 nút bấm

Code:
ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8; 
ALTER TABLE wp_terms CONVERT TO CHARACTER SET utf8; 
ALTER TABLE wp_term_relationships CONVERT TO CHARACTER SET utf8; 
ALTER TABLE wp_options CONVERT TO CHARACTER SET utf8;
 ALTER TABLE wp_usermeta CONVERT TO CHARACTER SET utf8;
------


Cách thay đổi Collation của Database thành utf8-general-ci

Trong một số trường hợp trang web của bạn bị lỗi hiển thị tiếng Việt, lỗi này có thể do Collation của Database không phải là utf8-general-ci (chẳng hạn như latin1_swedish_ci). Trong trường hợp này bạn cần phải thay đổi lại Collation của Database thành utf8-general-ci, sau đây là cách thực hiện:

Cách thay đổi Collation của Dataase:

1/ Truy cập vào phpMyAdmin trên host (hoặc localhost) và chọn Database nào muốn sửa
2/ Chọn Tab tên là Operations
3/ Nhìn xuống phía dưới cùng bạn sẽ thấy mục Collation, hãy chọn utf8-general-ci
4/ Nhấn Go để chuyển.

Thay đổi này chỉ có hiệu lực đồi với các dữ liệu được tạo mới sau thời điểm này, các dữ liệu cũ vẫn cỏn giữ nguyên Collation như cũ, bạn phải thực hiện việc chuyển đổi Collation cho từng bảng dữ liệu cũ.

Cách thay đổi Collation cho các bảng dữ liệu:

1/ Truy cập vào phpMyAdmin trên host (hoặc localhost) và chọn Database nào muốn sửa
2/ Trong khung bên trái, nhấn vào một bảng dữ liệu đầu tiên.
3/ Chuyển sang khung bên phải, chọn Tab tên là Structure (nếu chưa được chọn)
4/ Bạn hãy dò trong cột Collation và đánh dấu chọn mục nào có Collation muốn chuyển đổi.
5/ Nhấn vào lệnh Change (có hình cây bút chì) trong phần With selected nằm ngay bên dưới.
6/ Thay đổi thành utf8-general-ci của các mục trong cột Collation.
7/ Nhấn Save để lưu các thay đổi.
Tiếp tục thực hiện từ bước 2 đến bước 7 cho các bảng dữ liệu còn lại.

Nhớ sao lưu Database trước khi thực hiện để nếu có lỗi gì thì có thể khôi phục lại được.

0 nhận xét:

Hiển thị tiếng Việt trên website

Đây là một vấn đề cơ bản, nhưng khi mới tìm hiểu về HTML bạn thường gặp lỗi này. Để Tiếng Việt có thể hiện thị đúng bạn cần những thao tác sau:

1, Sử dụng font và bảng mã Unicode khi soạn thảo
2, Xác định dung charset cho website ở dạng utf-8 bằng cách thêm đoạn mã sau vào trong cặp thẻ <head> của website
1<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
Nếu như sau khi thực hiện các bước trên mà vẫn còn lỗi, chúng ta tiếp tục thực hiện thao tác sau:
3, Chuyển file encoding về UTF-8:
- Nếu sử dụng Notepad++ bạn thực hiện như sau:
Chọn menu Encoding -> Encode in UTF-8 without BOM
Encoding file trong Notepad++
Encoding file trong Notepad++
-  Đối với Dreamweaver
Chọn menu Modify -> Page Properties, tại mục Category chọn Title/Encoding, Chọn Encode (UTF-8) trong mục Encoding bên phải
Encoding file trong Dreamweaver
Encoding file trong Dreamweaver
Một số code editor khác bạn có thể thực hiện tương tự
---
còn nếu trong file php mà đánh chữ có đấu bị lổi mình có cách này:
<?php
echo"”;
?>
ở đầu của mổi file là dc phải hem nhỉ? Mình làm vậy và đóng file lai ròi mở lên lại, đánh chữ bt
---
Cho mình hỏi là mình cũng làm theo cách được hướng dẫn vậy mà khi load dữ liệu từ database mysql lên trang php thì bị lỗi font chử. Những chữ có 2 dấu như lỗi thì hiện là l?i. Xin hướng dẫn mình cách sử lỗi này.
Chào bạn, database thì bạn phải kiểm tra charset Collation của database xem đã đúng chưa nhé, đối với MySQL thì thường để Collation là utf8_general_ci để lưu trữ dữ liệu unicode.
Bạn ơi cho mình hỏi sao mình set file là utf8 hoặc utf8 without bom thì khi up lên host thật thì lại bị lỗi font còn chạy localhost thì hiển thị bình thường? Cách nào để sửa vậy bạn?hi

1 nhận xét:

DISPLAYING CHINESE CHARACTERS IN HTML

DISPLAYING CHINESE CHARACTERS IN HTML

Getting extended character sets to display correctly in HTML is a bit of a minefield. There are lots of things which can trip you up on this journey.
To make things even more complicated, there are numerous different sub-sets of Chinese characters which you'll need to be able to display. for example:
  • simplified Chinese: 
  • traditional Chinese: 
  • Pinyin: Hànyǔ;
  • simplified Chinese: 
  • traditional Chinese: 
  • Chinese: 
This article will help you get over some of the most simple obstacles

CHARSET

Life will be a lot easier if we make sure we're using the correct Charset: UTF-8. You'll need to make sure that you have the right <meta> content-type header in your HTML to start with:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
This will need to go in the <head> section of your web page.

SERVER HEADERS

Make sure that your webserver is sending the correct HTTP content-type header as well. The Firefox developer toolbar can check your server response headers: it is under the "Information" menu.
The server should be sending a response header like this:
Content-Type: text/html; charset=UTF-8
If the "charset=UTF-8" bit is missing from the Content-Type response header, or if it says something other than "UTF-8", then this will cause you problems. Ideally, you need to fix this in your server config, but you could also use a PHP header() directive at the top of a scripted document to make sure that your server sends the correct header.

FILE / FTP ENCODING

This one has caught everybody out at one time or another.
You must make sure that your save your document in UTF-8 format and upload the document to your webserver so that the format is preserved. Some text editors won't save in UTF-8 format. Windows users might want to look at TextPad, which supports UTF-8. As  Mac user, I prefer BBEdit.
When FTPing your file up to the server, make sure that the file format is preserved. In some FTP clients, this might mean that you need to FTP the file up to the server as binary file.

THIS IS JUST THE BEGINNING

There are plenty more things which can trip you up on the way to UTF-8 goodness, but these are the basics. If you have a problem trying to display extended character sets, it can usually be traced to a problem somewhere in your document encoding, be it the source files, server headers, or even the database. Good luck. We hope that this article has helped!

0 nhận xét:

Vài điểm nhỏ về UTF-8 cho cơ sở dữ liệu MySQL

Khi làm web bằng PHP và MySQL thì vấn đề xử lý tiếng Việt rất được hay gặp. Đôi khi nó gây rắc rối cho người làm web ở các thao tác như: sao lưu và phục hồi cơ sở dữ liệu, tạo table mới, lưu trữ và lấy dữ liệu từ cơ sở dữ liệu và hiển thị đúng, ... Bản thân tôi cũng đã gặp vài lần rắc rối với tiếng Việt trong việc xử lý dữ liệu, nên viết bài này tổng hợp 1 số cái đã trải qua để ghi nhớ cho sau này.

Tìm hiểu về charset và collation


Chúng ta tạm hiểu charset (viết đầy đủ là character set) là tập hợp các ký tự và mã hóa tương ứng của chúng, còn collation là quy tắc để so sánh các ký tự nằm trong 1 charset. Trang chủ của MySQL có ví dụ khá rõ ràng để giải thích 2 khái niệm này.

Thông thường (ở đây chúng ta chỉ nói đến MySQL) thì đối với mỗi charset có 1 collation mặc định đi kèm theo nó, VD latin1 <=> latin1_swedish_ci,utf8 <=> utf8_general_ci, ...

Các tham số của charset và collation


Đối với MySQL, thì charset và collation hiện diện ở những vị trí sau:

- Phía client: dữ liệu của phía client trước tiên cần phải mã hóa theo 1 charset nào đó, thông thường chúng ta dùng utf-8. Giá trị của charset này được MySQL lưu giữ trong tham số hệ thống character_set_client

- Phía server: charset và collation được dùng để mã hóa dữ liệu lưu trong hệ thống, các tham số tương ứng là character_set_server vàcollation_server. Ngoài ra, khi server trả dữ liệu trở lại về cho client thì chúng cũng cần phải có charset tương ứng, và tham số ứng với nó làcharacter_set_results

- Hơn thế nữa, nằm trung gian giữa client và server là 1 kết nối (connection) được tạo ra khi client gửi yêu cầu tới server (hoặc server trả kết quả về cho client). Connection này cũng yêu cầu phải có charset và collation, chúng được lưu trong các tham số hệ thống character_set_connection vàcollation_connection

Như vậy, tổng hợp lại có cả thảy 6 tham số lưu giữ những thuộc tính về charset và collation:

character_set_client
character_set_server
collation_server
character_set_results
character_set_connection
collation_connection

Từ đây chúng ta suy ra để server và client "có tiếng nói chung", VD như chúng ta muốn ghi vào table dữ liệu ở đúng dạng utf8 mà chúng ta có, thì các tham số trên phải được thiết lập cùng 1 nhóm với nhau utf8 và utf8_general_ci.

Cách thiết lập charset và collation


Đối với người quản trị server, có quyền thao tác trên dòng lệnh với mysql thì có thể thiết lập chúng bằng câu lệnh sau:

SET character_set_client = utf8;
SET character_set_server = utf8;
SET collation_server = utf8_general_ci;
...
(các lệnh sau tương tự)

(ở đây tôi lấy VD là utf8, đối với các charset và collation khác làm tương tự)

Tuy vậy, như thế khá dài dòng, MySQL có cung cấp cho chúng ta câu lệnh ngắn hơn như sau:

SET NAMES utf8 [COLLATE utf8_general_ci]

Phần trong dấu ngoặc vuông [] là không bắt buộc, nghĩa là nếu không có phần đó, collation mặc định tương ứng với charset đó sẽ được dùng. Chỗ này lưu ý làvới mỗi charset có thể có nhiều collation.

Câu lệnh trên không tương ứng với hoàn toàn 6 lệnh ban đầu, mà nó chỉ tương đương với 3 lệnh sau:

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

Ở đây cũng lưu ý là các collation sẽ được thiết lập (mặc định) tương ứng với các charset đó. Tuy vậy, các bạn có thể thấy là vẫn thiếu lệnh thiết lập chocharacter_set_server, tôi cũng không rõ tại sao :(.

Ngoài ra, MySQL còn cung cấp 1 lệnh rút ngắn khác, tương tư như SET NAMES ở trên, đó là:

SET CHARACTER SET utf8;

Lệnh này cơ bản giống lệnh trên, tuy vậy, nó thiết lập charset và collation của connection (2 tham số character_set_connection,collation_connection) giống với charset và collation của database (2 tham số character_set_databasecollation_database), nó tương đương với:

SET character_set_client = utf8;
SET character_set_results = utf8;
SET collation_connection = @@collation_database;

Đối với lập trình viên, khi bạn không có quyền thao tác trên dòng lệnh của mysql, thì có thể dùng câu lệnh PHP sau:

mysql_query('SET NAMES utf8 COLLATE utf8_general_ci');
hoặc
mysql_query('SET CHARACTER SET utf8');

Khi tôi thử nghiệm dùng các lệnh trên để thiết lập cho các kết nối tới cơ sở dữ liệu thì lệnh SET NAMES hoạt động tốt hơn lệnh SET CHARACTER SET. Có thể là do MySQL để kiểu charset và collation mặc định cho database làlatin1, mà chúng ta thì cần utf8.

Như thế, sau khi chạy lệnh SET NAMES (thường thì chạy theo cách 2 trong PHP) thì bạn có thể yên tâm tạo các truy vấn tới CSDL. Dữ liệu được ghi vào CSDL lúc này bạn có thể đọc được tiếng Việt luôn khi xem bằng PHPMyAdmin.

Những gì trình bày ở trên nên được áp dụng khi bạn tự viết 1 ứng dụng web mới. Đối với các ứng dụng đã có thì cần lưu ý xem nó có ảnh hưởng tới những gì đã có hay không (VD trong trường hợp dữ liệu của bạn lưu trữ không phải với collation utf8_general_ci chẳng hạn).

Một vài rắc rối khác


Không phải tất cả đều đúng cho mọi phiên bản của MySQL. Những điều trên được áp dụng cho MySQL version 5.0 trở lên. Từ bản 5.0, MySQL đã hỗ trợ tốt hơn cho đa ngôn ngữ. Tuy vậy, nếu bạn đã từng dùng MySQL 4.x thì vấn đề trở nên rắc rối hơn hẳn.

Tôi cũng từng gặp vấn đề lỗi hiển thị tiếng Việt khi sao lưu và phục hồi bằng PHPMyAdmin giữa 1 host dùng MySQL 4.x và 1 host dùng MySQL 5.0. Lúc đó tôi phải làm thủ công, mở file CSDL đó ra, sửa tất cả các câu lệnh tạo bảng cóCHARSET=latin1 thành CHARSET=utf8.

Tuy vậy, vấn đề sao lưu, phục hồi CSDL phụ thuộc vào charset và collation của nhiều thứ (ngoài những thứ trên), có thể kể ra đây gồm:

  • charset, collation của database (và các table) ở host cũ
  • charset của file SQL được sao lưu
  • charset, collation của database ở host mới

Những thứ này liên quan trực tiếp đến database nhiều hơn (những thứ ở trên liên quan đến việc thao tác qua lại giữa ứng dụng web và MySQL). Kinh nghiệm của tôi cho thấy là để sao lưu và phục hồi được đúng thì nên thiết lập mọi tham số ở host mới giống hệt như host cũ. Ngoài ra thì với MySQL 4.x thì nên chuyển tất cả về latin1 (do nó chưa hỗ trợ tốt cho đa ngôn ngữ), còn với MySQL 5.x thì chuyển tất cả qua utf8.

Phần về sao lưu và phục hồi này tôi cũng chưa có nhiều kinh nghiệm lắm, nên để mở vậy, sau này khá hơn thì sẽ viết tiếp :)

Tham khảo: MySQL Documentation

0 nhận xét:

Tiếng Việt và rắc rối trong lập trình Web

Trước tiên, mặc dù là người VN, tôi cũng phải công nhận rằng hệ thống font chữ của VN... củ chuối quá, mỗi nơi một phách. Điều này đã gây rất nhiều rắc rối cho các chương trình phần mềm, cũng như trong quá trình thiết kế web. Vậy hôm nay, tôi xin tổng kết lại các hệ thống font chữ VN, để các bạn bắt đầu tập tành làm web có thể nắm được và khắc phục được lỗi hiển thị chữ tiếng Việt trên các trang web.


I. Thời kỳ tiền Unicode


1. Tổng quan và cách sử dụng
Quay trở lại với những năm 98 trở về trước, ở VN tồn tại rất nhiều các hệ thống bảng mã khác nhau như bảng mã TCVN (ABC), VNI , VIQR... Trong lĩnh vực thiết kế web, các hệ thống bảng mã này được gộp vào một nhóm có tên là User Defined (nhóm font chữ do người dùng tự định nghĩa. Để sử dụng các hệ thống font chữ này, cặp thẻ Meta trong HTML thường có dạng:
<meta http-equiv="Content-Type" content="text/html; charset=user-defined">

Và để hiển thị đúng đắn tiếng Việt trên trang web, việc đầu tiên, các bạn phải chắc chắn rằng font chữ tương ứng trong các thẻ <font> trên trang web đã được cải đặt trên máy. Sau đó, bạn phài vào View/Encoding -> Chọn User defined. Lúc đó thì trang web mới có thể hiển thị đúng tiếng Việt ra cho bạn chọn.

2. Nhận dạng các chủng loại font:

Nếu các bạn lập trình và đẩy dữ liệu vào database, thì tuỳ theo hệ thống font chữ mà nó có thể có các dạng ký tự khác nhau. Chẳng hạn, với dòng chữ "Nhà tôi trên bến sông, có chiếc cầu nhỏ cong cong như con tôm", dòng ký tự sẽ có thể có dạng sau:

- Đối với font ABC (TCVN): "Nhµ t«i trªn bÕn s«ng, cã chiÕc cÇu nhá cong cong nh­ con t«m"
- Đối với font VNI: "Nhaø toâi treân beán soâng, coù chieác caàu nhoû cong cong nhö con toâm"
- Đối với font VIQR: "Nha` to^i tre^n be^'n so^ng, co' chie^'c ca^`u nho? cong cong nhu+ con to^m"

Và tất nhiên, nếu bạn mở một trang web mà thấy một số ký tự ở một trong các dạng trên, các bạn có thể đoán ra trang đó sử dụng hệ thống font chữ gì và tìm cách cài đặt hoặc encode cho hợp lý.

Đặc điểm và nhận dạng của một số hệ thống font chữ phổ biến:

a) Font ABC (hay còn gọi là font TCVN): là các font có tên bắt đầu bằng nhóm ký tự ".Vn", ví dụ: ".VnTime", ".VnArial"... Loại font này được sử dụng nhiều trong soạn thảo văn bản ở miền bắc, nếu tôi không nhầm thì do trường ĐHBK biên soạn. Là loại font 1 byte (1 ký tự được biểu diễn bởi 8 bit)

b) Font VNI, do miền Nam biên soạn. Đây là bộ font 2 byte, có tên bắt đầu bằng chữ "VNI", chẳng hạn "VNI Times"... Loại font này thịnh hành chủ yếu ở miền Nam.

c) Font VIQR: Bản chất nó vẫn chỉ là các ký tự ASCII không hơn không kém, sử dụng một số dấu có sẵn của nó để tạo ra một cái font có vè VN một tí.

Dù sao thì quá khứ kinh hoàng của các bộ font đó đã đi qua. Giờ đây, chúng ta sẽ không nói gì đến những chủng loại font này nữa. Hầu hết các website hiện nay đều sử dụng hệ thống font có tên là Unicode. Chúng ta sẽ làm quen với chúng ở phần II.


II. Unicode - Công nghệ của thời hiện đại


I. Tổng quan về hệ thống font Unicode
Unicode là một bảng mã mới (có thể gọi là dạng mở rộng (rất rộng) của bảng mã ASCII), sử dụng 2 byte cho mỗi ký tự và có khả năng thể hiện 65.536 ký tự khác nhau, cho phép biểu đạt mọi ký tự của tất cả các ngôn ngữ trên thế giới. Nói cách khác, với Unicode, mỗi ký tự của tất cả các ngôn ngữ trên thế giới sẽ có một con số riêng cho mình trong bảng mã. Các font chữ theo chuẩn Unicode được gọi là font Unicode.

Do đây là bảng mã chuẩn cho tất cả các ngôn ngữ trên thế giới nên vấn đề hiển thị ngôn ngữ tiếng Việt không còn gì khó khăn nữa. Bắt đầu từ phiên bản Windows 98 trở lên, Microsoft đã tích hợp trực tiếp bảng mã Unicode vào một số font chính của hệ điều hành như Arial, Times New Roman, Verdana... Điều xui xẻo là khi cài đặt font ABC lên hệ thống, không hiểu các tác giả đã vô tình hay cố ý đè bộ font của họ lên các font hệ thống khiến cho nhiều máy tính đã bị "mất" unicode, không thể hiển thị đúng font Unicode trên các trang web.

Các hệ thống font Unicode được chia làm 2 loại:
- Unicode đầy đủ, dùng trọn vẹn 2 byte để biểu diễn toàn bộ bảng mã Unicode. Trên các trang web, chúng được khai báo trong cặp thẻ Meta như sau:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

- Unicode rút gọn, còn được gọi là Unicode 8 bit, hay UTF - 8. Trên trang web, chúng được khai báo trong cặp thẻ Meta như sau:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Để hiển thị đúng đắn tiếng Việt trên trình duyệt, các hệ thống này cũng phải được encode theo đúng tiêu chuẩn của nó. Đối với hệ thống Unicode đầy đủ, người ta phải encode nó về dạng Western European (Windows). Còn đối với hệ thống font UTF - 8, người ta phải Encode nó về dạng Unicode (UTF-8).

2. Nhận dạng các chủng loại font Unicode:
Nếu các bạn lập trình và đẩy dữ liệu vào database, thì tuỳ theo hệ thống font chữ mà nó có thể có các dạng ký tự khác nhau. Chẳng hạn, với dòng chữ "Nhà tôi trên bến sông, có chiếc cầu nhỏ cong cong như con tôm" như trên, dòng ký tự sẽ có thể có dạng sau:

- Đối với font Unicode đầy đủ: "Nh#224; t#244;i tr#234;n b#7871;n s#244;ng, c#243; chi#7871;c c#7847;u nh#7887; cong cong nh#432; con t#244;m"

- Đối với font UTF - 8: "Nhà tôi trên bến sông, có chiếc cầu nhỏ cong cong nhÆ° con tôm"

Nếu bạn mở một trang web mà thấy một số ký tự ở một trong các dạng trên, các bạn có thể đoán ra trang đó sử dụng hệ thống font chữ gì và tìm cách cài đặt hoặc encode cho hợp lý.


III. Sử dụng font trong các thao tác với CSDL:


Vấn đề then chốt để làm việc với các CSDL đó là định dạng font chữ. Khi nhập một chuỗi vào CSDL, bạn phải xác định được chuỗi đó được mã hoá theo tiêu chuẩn font chữ nào, để khi xuất ra, bạn phải chắc chắn là trang web đó được mã hoá theo tiêu chuẩn tương ứng.

Chẳng hạn, trong một trang web, sử dụng thẻ:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Khi đó, nếu trong trang đó có chứa các phần tử form thì dữ liệu sau khi được submit sẽ được tự động chuyển mã sang dạng Unicode utf-8 tương ứng. Khi bạn lưu vào database, chuỗi sẽ được giữ nguyên định dạng mã hoá của utf-8. Như vậy, nếu bạn muốn xuất chuỗi đã lưu vào CSDL lên trang web, việc đầu tiên, bạn phải có dòng chữ xác định kiểu encode (mã hoá):

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Và sau đó, bạn có thể ung dung xuất chuỗi đó ra trang web mà không sợ bị lỗi font (tất nhiên trừ trường hợp font hệ thống của máy tính đó đã bị ghi đè bởi các font khác).

Đối với các hệ thống font chữ khác cũng tương tự như vậy. Chúc các bạn thành công và có được những trang web hay, đẹp và có những nội dung phong phú có ích cho xã hội.



Nguồn: phpvn

0 nhận xét:

Ngôn ngữ thống trị trên Internet sẽ là tiếng Trung?

Share on facebook
Tiếng Anh được coi là ngôn ngữ quốc tế trong kinh doanh và thương mại, nhưng dưới thời đại Internet ngày nay, sự thống trị đó có thể sắp chấm dứt, kênh truyền hình Fox News dẫn kết quả khảo sát mới đây của trang công nghệ Next Web cho biết.

Cộng đồng người Trung Quốc dùng mạng Internet ngày càng tăng trưởng mạnh.

Kết quả cho thấy, số lượng cư dân mạng Trung Quốc đang tăng trưởng mạnh và tiếng Trung Quốc có thể trở thành ngôn ngữ thống trị trên Internet trong vòng 5 năm tới. Nhiều blogger kháo nhau rằng, Trung Quốc đang làm tăng trưởng cộng đồng mạng với con số 445 triệu và nhanh chóng giảm cách biệt với cộng đồng 537 triệu người dùng tiếng Anh trên Internet.

Hãng tin BBC dẫn số liệu của Internet World Stats cho hay, trong vòng 12 tháng qua, Trung Quốc đã góp thêm 36 triệu người lên mạng và cứ đà này, cộng đồng tiếng Anh sẽ mất ngôi vị thống soái.

Tuy nhiên, không phải ai cũng bị thuyết phục về chuyện tiếng Anh sắp mất vị thế ngôn ngữ dẫn đầu trên Internet. "Tiếng Trung sẽ không bao giờ thay thế tiếng Anh, trở thành ngôn ngữ chính thức trên Internet", biên tập viên Greg Sterling từ chương trình Search Engine Land trên kênh Fox News, nhận xét. "Đây rõ ràng là dựa vào các con số thuần túy và quy mô cộng đồng người dùng tiếng Trung trên Internet mà thôi".

Theo BBC, ngoài tiếng Anh và tiếng Trung có độ lan rộng đáng kể thì hiện tiếng Tây Ban Nha đang chiếm 153 triệu trong tổng số 1,96 tỷ người dùng mạng. Tiếng Nhật và tiếng Bồ Đào Nha cũng nằm trên top 5 với lần lượt 99 triệu và 83 triệu.

BBC cho rằng, dù tiếng Anh đã có lịch sử phát triển thành một ngôn ngữ toàn cầu rất mạnh trong mấy thế kỷ qua, nhưng sự phát triển công nghệ hiện nay cho phép người ta tiếp xúc rộng rãi hơn với các ngôn ngữ khác.

Không chỉ trên Internet, theo tờ New York Times hồi đầu năm nay dẫn kết quả một cuộc khảo sát được Chính phủ Mỹ tài trợ, hàng ngàn trường công lập ở nước này đã bỏ các chương trình ngoại ngữ được chính phủ cấp kinh phí và đua nhau quay sang mở các lớp dạy tiếng Trung Quốc cho học sinh.

Một số trường học phải tự chi tiền cho các lớp học tiếng Trung của mình, trong khi hàng trăm trường học lại đang nhận được sự giúp đỡ trực tiếp. Chính phủ Trung Quốc đã gửi giáo viên người nước này đến các trường học khắp thế giới, trong đó có cả Mỹ và trả một phần lương cho họ. Trong thời điểm ngân sách bị thu hẹp, nhiều trường học ở Mỹ coi đây là một nguồn hỗ trợ khó có thể từ chối.

Tại Massillon, bang Ohio, Trường Jackson High School bắt đầu đưa tiếng Trung vào chương trình giảng dạy từ mùa thu năm 2007 với 20 học sinh. Parthena Draggett, Trưởng khoa ngoại ngữ của trường này cho hay, hiện các lớp tiếng Trung đã có 80 học sinh theo học.

Hiện chưa có những con số chính xác nhưng theo kết quả một cuộc khảo sát của Chính phủ Mỹ thì có khoảng 1.600 trường công lập và trường tư ở nước này đang dạy tiếng Trung, tăng 300 trường so với một thập kỷ trước. Và con số này ngày càng tăng lên.

Trong tổng số khoảng 27.000 trường cấp hai và cấp ba ở Mỹ có ít nhất một chương trình dạy ngoại ngữ, thì tỷ lệ trường đưa tiếng Trung vào giảng dạy đã tăng tới 4%, từ 1% trong giai đoạn 1997-1998, theo kết quả cuộc khảo sát được thực hiện bởi Center for Applied Linguistics, một nhóm nghiên cứu ở Washington.

Ngoài ra, số học sinh tham dự kì thi AP (chương trình chuyển tiếp tín chỉ đại học) tiếng Trung đã tăng nhanh với tốc độ đáng kinh ngạc. Nhiều khả năng, trong năm nay, tiếng Trung sẽ vượt qua tiếng Đức để trở thành ngôn ngữ phổ biến thứ ba trong chương trình AP, sau tiếng Tây Ban Nha và tiếng Pháp, Trevor Packer - Phó chủ tịch của College Board, đơn vị thiết lập chương trình AP khẳng định.

Một thập kỷ trước, hầu hết những trường có dạy tiếng Trung chỉ ở bờ đông và bờ tây Mỹ. Nhưng vài năm trở lại đây, nhiều trường ở các bang trung tâm trong đó có Ohio, Illinois, Texas, Georgia, Colorado và Utah là những nơi vốn không có cộng đồng người Hoa sinh sống đã bắt đầu đưa tiếng Trung vào giảng dạy.

Nguyên nhân khiến việc học và dạy tiếng Trung ngày càng trở nên phổ biến hơn tại các trường học Mỹ, theo các bậc phụ huynh, học sinh và các giáo viên, thì bởi Trung Quốc đang nổi lên như là một quốc gia quan trọng. Họ tin rằng, việc thành thạo tiếng Trung có thể mở ra nhiều cơ hội hơn.

Bên cạnh đó còn có sự thúc đẩy của một chương trình hợp tác giữa Hiệp hội hơn 4.500 trường đại học và tổ chức giáo dục ở Mỹ và Hanban, một tổ chức thuộc Bộ giáo dục Trung Quốc. Theo đó, từ năm 2006, hàng trăm giáo viên và các nhà quản lý giáo dục Mỹ đã được mời đến thăm các trường học ở Trung Quốc, chi phí chuyến đi do phía Hanban cung cấp.

Nhiều người đã bắt đầu đưa tiếng Trung vào chương trình giảng dạy sau khi họ quay về Mỹ. “Tiếng Trung đang thực sự bắt rễ ở đây”, bà Parthena Draggett cho biết. Bắt đầu từ mùa thu năm nay, chương trình dạy tiếng Đức của trường sẽ bị cắt giảm dần để nhường chỗ cho các tiết học tiếng Trung.

Thu Lan

0 nhận xét:

Ngôn ngữ đánh dấu siêu văn bản HTML

HTML (HyperText Markup Language) là ngôn ngữ đánh dấu siêu văn bản được thiết kế ra để tạo nên các trang web. Tập tin HTML là một văn bản có chứa các thẻ đánh dấu (markup tags), các thẻ đánh dấu này giúp các trình duyệt Web hiểu được cách trình bày và hiển thị trang Web. Tập tin HTML có phần mở rộng (Extension) là htm hay html và có thể được tạo ra bằng bất cứ chương trình xử lý văn bản đơn giản nào.
Trong tập HTML các phần tử (Element) được đánh dấu bằng các thẻ HTML. Các thẻ này được bao bởi dấu < và dấu > Thông thường các thẻ HTML được dùng theo một cặp <tên thẻ>(thẻ bắt đầu, thẻ mở) và </tên thẻ> (thẻ kết thúc, thẻ đóng), văn bản nằm giữa cặp thẻ này là nội dung của phần tử, một số thẻ không cần thẻ kết thúc (thẻ đóng). Các thẻ HTML không phân biệt chữ hoa và chữ thường, có nghĩa là các kiểu chữ đều được xem như nhau.

Cấu trúc cơ bản của một tập tin văn bản HTML

1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2.<html>
3.<head>
4.</head>
5.<body>
6.</body>
7.</html>
  1. Thẻ khai báo cho trình duyệt web biết loại văn bản HTML này  có chuẩn gì để hiển thị đúng với yêu cầu của nội dung cần thiết. Thẻ này đặt ở ngay dòng đầu tiên của mỗi văn bản HTML.
  2. Thẻ đánh dấu bắt đầu của văn bản HTML, thẻ này bắt buộc phải có.
  3. Thẻ bắt đầu của phần khai báo thông tin về trang web, thông tin này sẽ không được hiển thị trên trang Web
  4. Thẻ kết thúc phần khai báo thông tin về trang web.
  5. Thẻ đánh dấu bắt đầu phần nội dung của trang web, đây là phần nội dung sẽ hiển thị trên trang web, thẻ này bắt buộc phải có.
  6. Thẻ đánh dấu kết thúc phần nội dung của trang web.
  7. Thẻ đánh dấu kết thúc văn bản HTML.

Những nội dung thường được đặt trong thẻ HEAD

01.<head>
02.<title>tên của trang web</title>
03.<meta name="generator" content="Tên chương trình">
04.<meta name="author" content="Tên tác giả">
05.<meta name="keywords" content="Từ khóa">
06.<meta name="description" content="Mô tả trang web">
07.<link rel="stylesheet" href="/css/style.css" type="text/css" />
08.<script type="text/javascript" src="/script/script.js"></script>
09.</head>
  1. Thẻ bắt đầu của phần khai báo thông tin về trang web. 
  2. Thẻ khai báo tên của trang web, tên này sẽ được hiển thị trên thành trạng thái của trình duyệt.
  3. Thẻ khai báo tên và số phiên bản của công cụ, chương trình tạo ra trang web.
  4. Thẻ khai báo tên tác  giả của trang web.
  5. Thẻ khai báo các từ khóa, được dùng để liệt kê các từ khóa có liên quan đến nội dung trang web. Từ khóa cần thiết để hỗ trợ trong việc tìm kiếm, sắp xếp chỉ mục,... mỗi trang web có thể có nhiều từ khóa và được cách nhau bởi dấu phẩy.
  6. Thẻ khai báo phần mô tả giới thiệu nội dung của trang web. Dòng mô tả này thường chỉ khoản từ 20 đến 25 từ hoặc ít hơn. Các công cụ tìm kiếm sẽ dựa vào các thẻ này để hiển thị trên kết quả tìm kiếm.
  7. Thẻ khai báo tập tin CSS (Cascading Style Sheets), đây là tập tin chứa các mã định dạng cho các thành phần và nội dung của trang web.
  8. Thẻ khai báo tập tin chứa các lệnh được viết bằng ngôn ngữ JavaScript được dùng để hỗ trợ thêm một số tính năng nào đó cho trang web.
  9. Thẻ kết thúc phần khai báo thông tin về trang web.

Những nội dung thường được đặt trong thẻ BODY

01.<body>
02.<div>Nội dung</div>
03.<table>Nội dung</table>
04.<p>Nội dung</p>
05.<span>Nội dung</span>
06.<a href="/Địa chỉ URL">Liên kết</a>
07.<img src="/Địa chỉ URL của tập tin ảnh">
08.<br>
09.<ul><li>Dòng thứ 1</li><li>Dòng thứ 2</li></ul>
10.<ol><li>Dòng số 1</li><li>Dòng số 2</li></ol>
11.<!-- Nội dung ghi chú -->
12.</body>
  1. Thẻ đánh dấu bắt đầu phần nội dung của trang web.
  2. Thẻ dùng để phân nhóm cho nội dung của trang web. Thẻ này thường được dùng để tạo giao diện cho trang web, có thể dùng nhiều thẻ <div> lồng vào nhau. Trong văn bản HTML có thể có nhiều thẻ này.
  3. Thẻ tạo bảng cho nội dung của trang web, thẻ này giúp tạo giao diện có nhiều cột và dòng cho nội dung trên trang web. Có thể đặt thẻ <table> vào trong thẻ <div> và dùng nhiều thẻ<table> lồng vào nhau. Trong văn bản HTML có thể có nhiều thẻ này.
  4. Thẻ đánh dấu một đoạn trong nội dung của trang web. Thẻ <p> có thể được đặt trong thẻ <div><table>,... Trong văn bản HTML có thể có nhiều thẻ này.
  5. Thẻ đánh dấu một phần văn bản trong nội dung của trang web. Thẻ này thường được dùng để định dạng cho riêng một phần văn bản trong cùng một đoạn. Thẻ <span> có thể được đặt trong thẻ <div><table><p>,... Trong văn bản HTML có thể có nhiều thẻ này.
  6. Thẻ tạo liên kết đến một trang web khác cho đoạn văn bản nào đó. Trong văn bản HTML, các thẻ này thường được dùng để tạo các Menu liên kết đến các trang khác. Thẻ <a> có thể được đặt trong thẻ <div><table><p>,... Trong văn bản HTML có thể có nhiều thẻ này.
  7. Thẻ giúp hiển thị hình ảnh trên trang web. Thẻ <span> có thể được đặt trong thẻ <div><table><p>,... Trong văn bản HTML có thể có nhiều thẻ này.
  8. Thẻ ngắt dòng văn bản trong nội dung của trang web. Thẻ này sẽ ngắt bất cứ thành phần nào nằm ngay sau nó xuống một dòng, có thể dùng liên tiếp nhiều thẻ này (<br><br><br>)để ngắt xuống nhiều dòng. Trong văn bản HTML có thể có nhiều thẻ này.
  9. Thẻ tạo danh sách không đánh số đầu dòng (gạch đầu dòng). Thẻ <ul> có thể được đặt trong thẻ <div><table><p>,... Trong văn bản HTML có thể có nhiều thẻ này.
  10. Thẻ tạo danh sách có đánh số đầu dòng (số thứ tự). Thẻ <ol> có thể được đặt trong thẻ <div><table><p>,... Trong văn bản HTML có thể có nhiều thẻ này.
  11. Thẻ đánh dấu ghi chú trong tập tin HTML. Thẻ này chỉ dùng để đánh dấu hoặc ghi chú cho 1 đoạn HTML nào đó, trình duyệt web sẽ bỏ qua phần chú thích này.
  12. Thẻ đánh dấu kết thúc phần nội dung của trang web.

0 nhận xét:

About

Chúng tôi là đội ngũ làm website, marketting online chuyên nghiệp. Trang thông tin chính thức của chúng tôi là myhoian.com. Đến với chúng tôi , bạn sẽ nhận được sự tư vấn tin cậy, trang web ưng ý, sự hỗ trợ thân thiện.

Nhận xét

Loading...
.loadingxrcm {background:transparent url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1MbDICVINdJ2VOosI42WTFoAQWoWaGfoipWxoo30hNjf_2HyKIijHyswYp7fpxP0suEDXGCBbpdbcz_GRDu31jodI_MaE91rtpc4e1lRMq1hqFTMMHHf7eNFLPKDVinbrMMEvttc_1kM/s1600/progress_ani.gif) no-repeat 50% 50%;width:32px;height:32px;display:block;margin:0 auto;text-indent:-9999px;} ul#kmtranimasi{text-align:left;font:normal normal 11px Verdana,Geneva,sans-serif} ul#kmtranimasi,ul#kmtranimasi li{margin:0;padding:0;list-style:none;overflow:hidden;position:relative} ul#kmtranimasi li{text-indent:0;height:90px;background:whiteSmoke;padding:0 8px;border:1px solid #DFDFDF;border-top:1px solid white} ul#kmtranimasi img{border-radius:9999px;overflow:hidden;background:#383838;border:0;float:left;margin:5px 5px 0 0} ul#kmtranimasi .ketkomt{overflow:hidden} ul#kmtranimasi .ketkomt a{display:block;color:white;font-weight:bold;overflow:hidden;background:#363636;border-radius:2px;float:left;padding:0 5px;margin: 5px 0 0 0;} ul#kmtranimasi .ketkomt span{font-size:8px;position:absolute;z-index:2;top:21px;border-radius:2px;display:block;line-height:14px;padding:0 5px;left:68px;background:white} ul#kmtranimasi p{margin:15px 0 0}

Contact Details

Mr Duan Tell: 0944210999 Email: thietkewebhoian@gmail.com Địa chỉ : 32/9 Nguyễn Duy Hiệu - Hội An