var  a:string;
 a:='见';
//现在需要把这个字符串'活见鬼'转化成繁体来显示
 转化后的结果为:
 a:='見';

解决方案 »

  1.   

    BIG5TOGB
    interface
     function GBtoBIG5(value: string): string;
     function BIG5toGB(value: string): string;implementationvar
      BIG5Order: array[0..14757] of Word;
      GBOrder  : array[0..8177] of Word;function GBOffset(value: string): integer;
    begin
      if length(value) >= 2 then
        Result := (Ord(value[1]) - 161) * 94 + (Ord(value[2]) - 161)
      else
        Result := -1;
    end;function BIG5Offset(value: string): integer;
    begin
      Result := -1;
      if length(value) >= 2 then
      begin
        if (Ord(value[2]) >= 64) and (Ord(value[2]) <= 126) then
          Result := (Ord(value[1]) - 161) * 157 + (Ord(value[2]) - 64);
        if (Ord(value[2]) >= 161) and (Ord(value[2]) <= 254) then
          Result := (Ord(value[1]) - 161) * 157 + 63 + (Ord(value[2]) - 161);
      end
    end;function WordToString(value: Word): string;
    begin
      Result := Chr(Hi(value)) + Chr(Lo(Value));
    end;function isBIG5(value: string): Boolean;
    begin
      if (length(value)>=2) then
      begin
       if (value[1] < #161) then
         Result := false
       else
         if ((value[2] >= #64) and (value[2] <= #126)) or ((value[2] >= #161) and (value[2] <= #254)) then
           Result := true
         else
           Result := false
      end
      else
        Result := false
    end;function isGB(value: string): Boolean;
    begin
      if (length(value)>=2) then
      begin
        if (value[1] <= #161) and (value[1] >= #247) then
          Result := false
        else
          if (value[2] <= #161) and (value[2] >= #254) then
            Result := false
          else
            Result := true
      end
      else
        Result := true;
    end;function GBtoBIG5(value: string): string;
    var
      leng, idx      : integer;
      tmpStr         : string[2];
      Offset         : integer;
      output         : string;
    begin
      output := '';
      leng := length(value);
      idx := 1;
      while idx <= leng do
      begin
        tmpStr := value[idx]+ value[idx + 1];
        if isGB(tmpStr) then
        begin
          offset:=GBOffset(tmpStr);
          if (offset >= 0) and (offset <= 8177) then
          begin
            output := output + WordToString(GBOrder[offset]);
            inc(idx);
          end
          else
            output := output + value[idx] ;
        end
        else
          output := output + value[idx] ;    inc(idx, 1);
      end;
      Result := output;
    end;function BIG5toGB(value: string): string;
    var
      leng, idx      : integer;
      tmpStr         : string[2];
      output         : string;
      offset         : integer;
    begin
      output := '';
      leng := length(value);
      idx := 1;
      while idx <= leng do
      begin
        tmpStr := value[idx]+ value[idx + 1];
        if isBIG5(tmpStr) then
        begin
          offset:=BIG5Offset(tmpStr);
          if (offset >= 0) and (offset <= 14757) then
          begin
            output := output + WordToString(BIG5Order[offset]);
            inc(idx);
          end
          else
            output := output + value[idx];
        end
        else
          output := output + value[idx];    inc(idx);
      end;
      Result := output;
    end;
      

  2.   

    楼主没把问题说清楚,你要转成繁体,但是用什么代码呢?
    GBK? Big5? Unicode?