Class: CharDet::GB2312DistributionAnalysis

Inherits:
CharDistributionAnalysis show all
Defined in:
actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb

Instance Method Summary (collapse)

Methods inherited from CharDistributionAnalysis

#feed, #get_confidence, #got_enough_data, #reset

Constructor Details

- (GB2312DistributionAnalysis) initialize

Returns a new instance of GB2312DistributionAnalysis



144
145
146
147
148
149
# File 'actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb', line 144

def initialize
  super()
  @_mCharToFreqOrder = GB2312CharToFreqOrder
  @_mTableSize = GB2312_TABLE_SIZE
  @_mTypicalDistributionRatio = GB2312_TYPICAL_DISTRIBUTION_RATIO
end

Instance Method Details

- (Object) get_order(aStr)



151
152
153
154
155
156
157
158
159
160
161
# File 'actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb', line 151

def get_order(aStr)
  # for GB2312 encoding, we are interested 
  #  first  byte range: 0xb0 -- 0xfe
  #  second byte range: 0xa1 -- 0xfe
  # no validation needed here. State machine has done that
  if (aStr[0..0] >= "\xB0") and (aStr[1..1] >= "\xA1")
    return 94 * (aStr[0] - 0xB0) + aStr[1] - 0xA1
  else
    return -1
  end
end