Trang 2 trên tổng số 5 Đầu tiênĐầu tiên 1234... Cuối cùngCuối cùng
Từ 11 tới 20 trên tổng số 46 kết quả

Đề tài: Tiếng việt trong Firebird database

  1. #11
    Ngày gia nhập
    08 2017
    Bài viết
    2,552

    Mặc định Tiếng việt trong Firebird database

    Đáng lưu tâm, có ngày dùng đến, dùng lại.

  2. #12
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    427

    Tiếng Việt nào mà chẳng phải là một mảng byte, mà đã là byte thì lưu ở đâu chả được, dưới dạng binary chẳng hạn, vấn đề là có thể hiện đúng trên màn hình không thôi
    Hỏi ngu tí, mỗi trang web đều được gán một charset nào đó để có thể hiển thị đúng các ký tự, nhấn mạnh, để hiển thị, còn csdl dùng charset làm gì?

  3. #13
    Ngày gia nhập
    08 2017
    Bài viết
    2,552

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Tiếng Việt nào mà chẳng phải là một mảng byte, mà đã là byte thì lưu ở đâu chả được, dưới dạng binary chẳng hạn, vấn đề là có thể hiện đúng trên màn hình không thôi
    Hỏi ngu tí, mỗi trang web đều được gán một charset nào đó để có thể hiển thị đúng các ký tự, nhấn mạnh, để hiển thị, còn csdl dùng charset làm gì?
    trứng mà đòi ngu như vịt

    csdl dùng charset làm gì là biết cá nhân thuộc loại đặc cán mai rồi.

    SQL Code:
    1. mysql> SHOW CHARACTER SET;
    2. +----------+-----------------------------+---------------------+--------+
    3. | Charset  | Description                 | DEFAULT collation   | Maxlen |
    4. +----------+-----------------------------+---------------------+--------+
    5. | big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
    6. | dec8     | DEC West European           | dec8_swedish_ci     |      1 |
    7. | cp850    | DOS West European           | cp850_general_ci    |      1 |
    8. | hp8      | HP West European            | hp8_english_ci      |      1 |
    9. | koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
    10. | latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
    11. | latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
    12. | swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |
    13. | ascii    | US ASCII                    | ascii_general_ci    |      1 |
    14. | ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |
    15. | sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |
    16. | hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |
    17. | tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 |
    18. | euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 |
    19. | koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |
    20. | gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |
    21. | greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 |
    22. | cp1250   | Windows Central European    | cp1250_general_ci   |      1 |
    23. | gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
    24. | latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
    25. | armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
    26. | utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |
    27. | ucs2     | UCS-2 Unicode               | ucs2_general_ci     |      2 |
    28. | cp866    | DOS Russian                 | cp866_general_ci    |      1 |
    29. | keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 |
    30. | macce    | Mac Central European        | macce_general_ci    |      1 |
    31. | macroman | Mac West European           | macroman_general_ci |      1 |
    32. | cp852    | DOS Central European        | cp852_general_ci    |      1 |
    33. | latin7   | ISO 8859-13 Baltic          | latin7_general_ci   |      1 |
    34. | cp1251   | Windows Cyrillic            | cp1251_general_ci   |      1 |
    35. | cp1256   | Windows Arabic              | cp1256_general_ci   |      1 |
    36. | cp1257   | Windows Baltic              | cp1257_general_ci   |      1 |
    37. | BINARY   | BINARY pseudo charset       | BINARY              |      1 |
    38. | geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |      1 |
    39. | cp932    | SJIS FOR Windows Japanese   | cp932_japanese_ci   |      2 |
    40. | eucjpms  | UJIS FOR Windows Japanese   | eucjpms_japanese_ci |      3 |
    41. +----------+-----------------------------+---------------------+--------+

  4. #14
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    427

    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    trứng mà đòi ngu như vịt

    csdl dùng charset làm gì là biết cá nhân thuộc loại đặc cán mai rồi.

    SQL Code:
    1. mysql> SHOW CHARACTER SET;
    2. +----------+-----------------------------+---------------------+--------+
    3. | Charset  | Description                 | DEFAULT collation   | Maxlen |
    4. +----------+-----------------------------+---------------------+--------+
    5. | big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
    6. | dec8     | DEC West European           | dec8_swedish_ci     |      1 |
    7. | cp850    | DOS West European           | cp850_general_ci    |      1 |
    8. | hp8      | HP West European            | hp8_english_ci      |      1 |
    9. | koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
    10. | latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
    11. | latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
    12. | swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |
    13. | ascii    | US ASCII                    | ascii_general_ci    |      1 |
    14. | ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |
    15. | sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |
    16. | hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |
    17. | tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 |
    18. | euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 |
    19. | koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |
    20. | gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |
    21. | greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 |
    22. | cp1250   | Windows Central European    | cp1250_general_ci   |      1 |
    23. | gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
    24. | latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
    25. | armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
    26. | utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |
    27. | ucs2     | UCS-2 Unicode               | ucs2_general_ci     |      2 |
    28. | cp866    | DOS Russian                 | cp866_general_ci    |      1 |
    29. | keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 |
    30. | macce    | Mac Central European        | macce_general_ci    |      1 |
    31. | macroman | Mac West European           | macroman_general_ci |      1 |
    32. | cp852    | DOS Central European        | cp852_general_ci    |      1 |
    33. | latin7   | ISO 8859-13 Baltic          | latin7_general_ci   |      1 |
    34. | cp1251   | Windows Cyrillic            | cp1251_general_ci   |      1 |
    35. | cp1256   | Windows Arabic              | cp1256_general_ci   |      1 |
    36. | cp1257   | Windows Baltic              | cp1257_general_ci   |      1 |
    37. | BINARY   | BINARY pseudo charset       | BINARY              |      1 |
    38. | geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |      1 |
    39. | cp932    | SJIS FOR Windows Japanese   | cp932_japanese_ci   |      2 |
    40. | eucjpms  | UJIS FOR Windows Japanese   | eucjpms_japanese_ci |      3 |
    41. +----------+-----------------------------+---------------------+--------+
    Bạn cũng không biết à.

  5. #15
    Ngày gia nhập
    08 2017
    Bài viết
    2,552

    biết để làm gì mới qtrọng?

  6. #16
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    543

    Mặc định Tiếng việt trong Firebird database

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Tiếng Việt nào mà chẳng phải là một mảng byte, mà đã là byte thì lưu ở đâu chả được, dưới dạng binary chẳng hạn, vấn đề là có thể hiện đúng trên màn hình không thôi
    Không đúng. Một câu tiếng Việt là một xâu ký tự. Xâu ký tự khác mảng byte đấy.

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Hỏi ngu tí, mỗi trang web đều được gán một charset nào đó để có thể hiển thị đúng các ký tự, nhấn mạnh, để hiển thị, còn csdl dùng charset làm gì?
    Để xử lý các xâu ký tự, vốn có thể được viết bằng những ngôn ngữ khác nhau, trên những bảng chữ cái khác nhau.
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  7. #17
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    427

    Trích dẫn Nguyên bản được gửi bởi Ada Xem bài viết
    Không đúng. Một câu tiếng Việt là một xâu ký tự. Xâu ký tự khác mảng byte đấy.



    Để xử lý các xâu ký tự, vốn có thể được viết bằng những ngôn ngữ khác nhau, trên những bảng chữ cái khác nhau.
    À, làm rõ chỗ này một chút, ý mình về mảng byte là mọi thứ lưu trong máy tính đều lưu dưới dạng byte cả, và thường là nhiều byte nên mình nói là mảng byte, và xâu ký tự mà mình nói nó không tương ứng một một mảng byte. Với charset utf8, một ký tự có thể là một, hai, ba, bốn byte, với charset utf16, một ký tự là hai byte, tức là mỗi xâu đều là một mảng byte, duy nhất hay không thì mình chưa biết, hình như nó có liên quan đến cái gọi là normalize gì đó, nếu bạn biết thì cho mình mở rộng tầm mắt với
    Còn ý sau của bạn thì mình hiểu là xác định charset để csdl cung cấp thông tin cho trình sử dụng cs dữ liệu biết cách hiển thị nó ra màn hình hoặc thực hiện các thao tác trên xâu như substring, tìm kiếm ...( nếu có), còn bản thân csdl không dùng đến đúng không.
    Đã được chỉnh sửa lần cuối bởi khoaph : 28-04-2019 lúc 07:43 PM.

  8. #18
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    543

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    À, làm rõ chỗ này một chút, ý mình về mảng byte là mọi thứ lưu trong máy tính đều lưu dưới dạng byte cả, và thường là nhiều byte nên mình nói là mảng byte, và xâu ký tự mà mình nói nó không tương ứng một một mảng byte. Với charset utf8, một ký tự có thể là một, hai, ba, bốn byte, với charset utf16, một ký tự là hai byte, tức là mỗi xâu đều là một mảng byte, duy nhất hay không thì mình chưa biết, hình như nó có liên quan đến cái gọi là normalize gì đó, nếu bạn biết thì cho mình mở rộng tầm mắt với
    Trong ngôn ngữ C, cho x = 127, y = 128. Ta có x < y nếu x, y là unsigned char. Nhưng ta cũng có y < x nếu x, y là char.

    Xâu nào cũng phải được thực hiện bằng mảng byte cả. Cái này thì hiển nhiên. Nhưng xâu và mảng byte khác nhau. Ví dụ, truy vấn x < y có thể cho kết quả *false* nếu x, y là 2 mảng byte, nhưng kết quả *true* nếu vẫn 2 mảng byte ấy được diễn giải thành 2 xâu ký tự. Bởi vì lúc ấy, toán tử < đã khác rồi. Và tương tự như thế, ý nghĩa của < thay đổi nếu diễn giải lại thành 2 xâu ký tự của 1 ngôn ngữ khác, nói rõ hơn, charset khác.

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Còn ý sau của bạn thì mình hiểu là xác định charset để csdl cung cấp thông tin cho trình sử dụng cs dữ liệu biết cách hiển thị nó ra màn hình hoặc thực hiện các thao tác trên xâu như substring, tìm kiếm ...( nếu có), còn bản thân csdl không dùng đến đúng không.
    Sắp xếp 1 danh sách theo thứ tự tên và họ rồi in ra màn hình. Đó là việc của CSDL, hay của màn hình?
    Đã được chỉnh sửa lần cuối bởi Ada : 28-04-2019 lúc 10:18 PM.
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  9. #19
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    427

    Trích dẫn Nguyên bản được gửi bởi Ada Xem bài viết
    Trong ngôn ngữ C, cho x = 127, y = 128. Ta có x < y nếu x, y là unsigned char. Nhưng ta cũng có y < x nếu x, y là char.

    Xâu nào cũng phải được thực hiện bằng mảng byte cả. Cái này thì hiển nhiên. Nhưng xâu và mảng byte khác nhau. Ví dụ, truy vấn x < y có thể cho kết quả *false* nếu x, y là 2 mảng byte, nhưng kết quả *true* nếu vẫn 2 mảng byte ấy được diễn giải thành 2 xâu ký tự. Bởi vì lúc ấy, toán tử < đã khác rồi. Và tương tự như thế, ý nghĩa của < thay đổi nếu diễn giải lại thành 2 xâu ký tự của 1 ngôn ngữ khác, nói rõ hơn, charset khác.



    Sắp xếp 1 danh sách theo thứ tự tên và họ rồi in ra màn hình. Đó là việc của CSDL, hay của màn hình?
    1. Bạn nói đúng; 2. Đương nhiên là của csdl rồi
    Mình đảng trí quá, chỉ chú ý đến vấn đề hiển thị ra màn hình mà quên đi vấn đề truy vấn
    Cảm ơn bạn.

    - - - Nội dung đã được cập nhật ngày 29-04-2019 lúc 08:09 PM - - -

    Cho mình hỏi hiện giờ có những charset tiếng Việt nào và nó có hiểu được thứ tự a ă â b c d đ ... sau đó là thứ tự dấu thanh, a á à ả ã ạ chẳng hạn, không?

  10. #20
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    543

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Cho mình hỏi hiện giờ có những charset tiếng Việt nào và nó có hiểu được thứ tự a ă â b c d đ ... sau đó là thứ tự dấu thanh, a á à ả ã ạ chẳng hạn, không?
    Tiếng Việt có mặt trong các bảng mã 8 bit như TCVN3 (chuẩn quốc gia) hay VNI (chuẩn công nghiệp) nhưng tất cả đều đã lạc hậu, ít được hỗ trợ và, do thế, không nên tiếp tục dùng để chứa dữ liệu mới.

    Tiếng Việt thông dụng hiện nay tuân theo TCVN 6909:2001 (chuẩn quốc gia), vốn là 1 phần của 2 chuẩn, ISO/IEC 10646-1:2000 (chuẩn quốc tế) và Unicode từ v3 trở lên (chuẩn công nghiệp). Theo đó, mọi ký tự tiếng việt đều có số thứ tự nhỏ hơn 0x2000. Bất cứ charset nào chứa 8192 ký tự đầu tiên của 2 chuẩn đó đều có thể biểu diễn được tiếng Việt. Ví dụ, UTF-8, UTF-16, UCS-2, UCS-4 (aka UTF-32).

    Tuy nhiên, do chuẩn là đa ngôn ngữ, thứ tự ký tự trong chuẩn khác với thứ tự chính tả tiếng Việt, nên cần so sánh (nghĩa là phải sắp thứ tự lại theo chính tả). Và do một từ tiếng Việt có nhiều cách mã hóa khác nhau, nên cần chuẩn hóa (nghĩa là mã hóa lại xâu ký tự theo một cách nào đó được chọn làm chuẩn). Cả hai việc này đòi hỏi những thuật toán chuyên dùng cho tiếng Việt. Charset không "hiểu" được đâu.

    Tóm lại, để đưa được 1 ngôn ngữ nào đó (tiếng Việt) vào CSDL thì CSDL không những phải có charset phù hợp mà còn phải có các thuật toán hỗ trợ ngôn ngữ ấy nữa.
    Đã được chỉnh sửa lần cuối bởi Ada : 30-04-2019 lúc 01:07 AM.
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn